# SQLite (/docs/orm/core-concepts/supported-databases/sqlite)

Location: ORM > 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](/orm/core-concepts/supported-databases/database-drivers#driver-adapters):

**Local SQLite with `better-sqlite3`:**

  

#### npm

```bash
npm install @prisma/adapter-better-sqlite3
```

#### pnpm

```bash
pnpm add @prisma/adapter-better-sqlite3
```

#### yarn

```bash
yarn add @prisma/adapter-better-sqlite3
```

#### bun

```bash
bun add @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`:**

  

#### npm

```bash
npm install @prisma/adapter-libsql
```

#### pnpm

```bash
pnpm add @prisma/adapter-libsql
```

#### yarn

```bash
yarn add @prisma/adapter-libsql
```

#### bun

```bash
bun add @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`:**

  

#### npm

```bash
npm install @prisma/adapter-d1
```

#### pnpm

```bash
pnpm add @prisma/adapter-d1
```

#### yarn

```bash
yarn add @prisma/adapter-d1
```

#### bun

```bash
bun add @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
* Best for 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/core-concepts/supported-databases/database-drivers): Learn how Prisma connects to your database using driver adapters
- [`MongoDB`](https://www.prisma.io/docs/orm/core-concepts/supported-databases/mongodb): How Prisma ORM connects to MongoDB databases
- [`MySQL`](https://www.prisma.io/docs/orm/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/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/core-concepts/supported-databases/sql-server): Use Prisma ORM with Microsoft SQL Server databases