| name | prisma-database-setup-sqlite |
| description | SQLite Setup. Reference when using this Prisma feature. |
| license | MIT |
| metadata | {"author":"prisma","version":"7.0.0"} |
SQLite Setup
Configure Prisma with SQLite.
Prerequisites
1. Schema Configuration
In prisma/schema.prisma:
datasource db {
provider = "sqlite"
}
generator client {
provider = "prisma-client"
output = "../generated"
}
2. Config Configuration (v7)
In prisma.config.ts:
import { defineConfig, env } from 'prisma/config'
export default defineConfig({
schema: 'prisma/schema.prisma',
datasource: {
url: env('DATABASE_URL'),
},
})
3. Environment Variable
In .env:
DATABASE_URL="file:./dev.db"
Connection String Format
file:PATH
- PATH: Relative path to the database file (from
prisma/schema.prisma location usually, but in v7 check prisma.config.ts context). Usually relative to the schema file.
Driver Adapter (Prisma ORM 7 required)
Prisma ORM 7 uses the query compiler by default, so you must use a driver adapter.
-
Install adapter and driver:
npm install @prisma/adapter-better-sqlite3 better-sqlite3
-
Instantiate Prisma Client with the adapter:
import { PrismaClient } from '../generated/client'
import { PrismaBetterSqlite3 } from '@prisma/adapter-better-sqlite3'
const adapter = new PrismaBetterSqlite3({
url: process.env.DATABASE_URL ?? 'file:./dev.db',
})
const prisma = new PrismaClient({ adapter })
Using Driver Adapter (LibSQL / Turso)
For edge compatibility or Turso:
-
Install:
npm install @prisma/adapter-libsql @libsql/client
-
Instantiate:
import { PrismaClient } from '../generated/client'
import { PrismaLibSql } from '@prisma/adapter-libsql'
const adapter = new PrismaLibSql({
url: process.env.TURSO_DATABASE_URL,
authToken: process.env.TURSO_AUTH_TOKEN,
})
const prisma = new PrismaClient({ adapter })
Limitations
- No Enums: SQLite doesn't support enums (Prisma polyfills them or treats as String).
- No Scalar Lists:
String[] is not supported directly.
- Concurrency: Write operations lock the file.
Common Issues
"Database file not found"
Ensure the path in DATABASE_URL is correct relative to where Prisma is running or the schema file. file:./dev.db creates it next to schema.