Notr Logo
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.ts loading
  • Working in monorepos with complex paths

Provider detection

  • Postgres: postgresql://, postgres://
  • SQLite: file:./db.sqlite or *.db
  • Turso/LibSQL: libsql:// (requires auth token)