# SQLite (Prisma ORM v7) (/docs/orm/v7/core-concepts/supported-databases/sqlite) > For the complete Prisma documentation index, see [llms.txt](https://www.prisma.io/docs/llms.txt). A markdown version of any docs page is available by appending `.md` to its URL. Use Prisma ORM with SQLite databases including local SQLite, Turso (libSQL), and Cloudflare D1 Location: ORM > v7 > Core Concepts > Supported databases > SQLite Prisma ORM supports SQLite and SQLite-compatible databases. This includes local SQLite files, Turso's distributed libSQL, and Cloudflare's serverless D1. ## Setup [#setup] Configure the SQLite provider in your Prisma schema: ```prisma title="schema.prisma" datasource db { provider = "sqlite" } ``` Set the connection URL in `prisma.config.ts`: ```typescript title="prisma.config.ts" import { defineConfig } from "prisma/config"; export default defineConfig({ schema: "prisma/schema.prisma", datasource: { url: "file:./dev.db", // or libsql:// for Turso }, }); ``` ## Using driver adapters [#using-driver-adapters] Instead of Prisma's built-in driver, you can use JavaScript database drivers via [driver adapters](https://www.prisma.io/docs/orm/v7/core-concepts/supported-databases/database-drivers#driver-adapters): **Local SQLite with `better-sqlite3`:** #### bun ```bash bun add @prisma/adapter-better-sqlite3 ``` #### pnpm ```bash pnpm add @prisma/adapter-better-sqlite3 ``` #### yarn ```bash yarn add @prisma/adapter-better-sqlite3 ``` #### npm ```bash npm install @prisma/adapter-better-sqlite3 ``` ```ts import { PrismaBetterSqlite3 } from "@prisma/adapter-better-sqlite3"; import { PrismaClient } from "./generated/prisma"; const adapter = new PrismaBetterSqlite3({ url: "file:./prisma/dev.db" }); const prisma = new PrismaClient({ adapter }); ``` **Turso with `@prisma/adapter-libsql`:** #### bun ```bash bun add @prisma/adapter-libsql ``` #### pnpm ```bash pnpm add @prisma/adapter-libsql ``` #### yarn ```bash yarn add @prisma/adapter-libsql ``` #### npm ```bash npm install @prisma/adapter-libsql ``` ```ts import { PrismaLibSQL } from "@prisma/adapter-libsql"; import { PrismaClient } from "./generated/prisma"; const adapter = new PrismaLibSQL({ url: process.env.TURSO_DATABASE_URL, authToken: process.env.TURSO_AUTH_TOKEN, }); const prisma = new PrismaClient({ adapter }); ``` **Cloudflare D1 with `@prisma/adapter-d1`:** #### bun ```bash bun add @prisma/adapter-d1 ``` #### pnpm ```bash pnpm add @prisma/adapter-d1 ``` #### yarn ```bash yarn add @prisma/adapter-d1 ``` #### npm ```bash npm install @prisma/adapter-d1 ``` ```ts import { PrismaD1 } from "@prisma/adapter-d1"; import { PrismaClient } from "./generated/prisma"; const adapter = new PrismaD1(env.DB); // D1 binding in Workers const prisma = new PrismaClient({ adapter }); ``` ## Supported variants [#supported-variants] ### Local SQLite [#local-sqlite] Standard SQLite database files (`.db`). Connection URL format: `file:./path/to/database.db` * Use `prisma migrate dev` for schema changes * Store database file anywhere in your filesystem * Suited to development and small applications ### Turso (libSQL) [#turso-libsql] Edge-hosted, distributed SQLite-compatible database. * Connection URL format: `libsql://[hostname]` * Requires authentication token * Supports embedded replicas for faster local reads * Use local SQLite file + Turso CLI for migrations (see [Turso docs](https://docs.turso.tech/)) **Key differences:** * Remote access over HTTP * Replication and automated backups * Schema changes via `prisma migrate diff` + Turso CLI ### Cloudflare D1 [#cloudflare-d1] Serverless SQLite database for Cloudflare Workers. * Automatic read-replication across regions * Schema changes via Wrangler CLI + `prisma migrate diff` * Local (`.wrangler/state`) and remote versions available **Key differences:** * No transaction support currently * Migrations via Wrangler: `wrangler d1 migrations apply` * Deploy with Cloudflare Workers ## Type mappings [#type-mappings] | Prisma ORM | SQLite | | ---------- | --------- | | `String` | `TEXT` | | `Boolean` | `BOOLEAN` | | `Int` | `INTEGER` | | `BigInt` | `INTEGER` | | `Float` | `REAL` | | `Decimal` | `DECIMAL` | | `DateTime` | `NUMERIC` | | `Json` | `JSONB` | | `Bytes` | `BLOB` | | `Enum` | `TEXT` | > [!NOTE] > SQLite stores booleans as `0` (false) or `1` (true). Learn more about [SQLite type affinity](https://www.sqlite.org/datatype3.html#boolean). ## Common considerations [#common-considerations] **Timestamp format with driver adapters:** Configure how `DateTime` values are stored: ```ts const adapter = new PrismaBetterSqlite3( { url: "file:./dev.db" }, { timestampFormat: "unixepoch-ms" } // For backward compatibility ); ``` * **ISO 8601 (default)**: Best for new projects * **`unixepoch-ms`**: Required for migrating from Prisma's native driver **Enum validation:** SQLite doesn't enforce enum values at the database level. Invalid values will cause Prisma Client queries to fail at runtime. **Integer overflow:** Prisma ORM validates that numbers fit within integer boundaries. If a value exceeds limits, you'll get a P2023 error. ## Related pages - [`Database drivers`](https://www.prisma.io/docs/orm/v7/core-concepts/supported-databases/database-drivers): Learn how Prisma connects to your database using driver adapters - [`MongoDB`](https://www.prisma.io/docs/orm/v7/core-concepts/supported-databases/mongodb): How Prisma ORM connects to MongoDB databases - [`MySQL`](https://www.prisma.io/docs/orm/v7/core-concepts/supported-databases/mysql): Use Prisma ORM with MySQL databases including self-hosted MySQL/MariaDB and serverless PlanetScale - [`PostgreSQL`](https://www.prisma.io/docs/orm/v7/core-concepts/supported-databases/postgresql): Use Prisma ORM with PostgreSQL databases including self-hosted, serverless (Neon, Supabase), and CockroachDB - [`SQL Server`](https://www.prisma.io/docs/orm/v7/core-concepts/supported-databases/sql-server): Use Prisma ORM with Microsoft SQL Server databases