API Reference
Database Connection (initializeConnection)
Auto-detect provider, load schema, and manage connections.
import { initializeConnection } from '@remcostoeten/drizzleasy'Single database
async function connect() {
const db = await initializeConnection(process.env.DATABASE_URL!)
}Turso / LibSQL
async function connectTurso() {
const db = await initializeConnection(process.env.DATABASE_URL!, {
authToken: process.env.TURSO_AUTH_TOKEN!
})
}Environment switching
async function connectByEnv() {
const db = await initializeConnection({
development: 'file:./dev.db',
production: process.env.DATABASE_URL!,
test: 'file:./test.db'
})
}Multiple named databases
async function connectMultiple() {
const dbs = await initializeConnection({
main: process.env.DATABASE_URL!,
analytics: process.env.ANALYTICS_URL!,
cache: 'file:./cache.db'
})
}Manual schema override
Bypass auto-loading for Next.js/Turbopack compatibility:
import * as schema from '@/db/schema'
async function connectWithSchema() {
const db = await initializeConnection(
process.env.DATABASE_URL!,
{ schema }
)
}Useful when:
- Next.js 15 with Turbopack has module resolution issues
- You want to avoid automatic
drizzle.config.tsloading - Working in monorepos with complex paths
Provider detection
- Postgres:
postgresql://,postgres:// - SQLite:
file:./db.sqliteor*.db - Turso/LibSQL:
libsql://(requires auth token)