← nitronium.dev

Drizzle ORM ile PostgreSQL'den SQLite'a geçiş

2026-06-18
Drizzle ORM tabanlı bir Next.js projesini PostgreSQL'den SQLite'a taşırken adımlar şunlardı:

1. Paket değişimi

`bash
npm uninstall pg
npm install better-sqlite3
npm install -D @types/better-sqlite3
`

2. Schema

drizzle-orm/pg-coredrizzle-orm/sqlite-core. Tip farkları:
- serialinteger().primaryKey({ autoIncrement: true })
- jsonbtext (JSON.stringify/parse elle yapılıyor)
- timestamp().defaultNow()text().default(sql\(datetime('now'))\)

3. Client

`ts
import Database from 'better-sqlite3'
import { drizzle } from 'drizzle-orm/better-sqlite3'
const sqlite = new Database('./data/markaskor.db')
sqlite.pragma('journal_mode = WAL')
export const db = drizzle(sqlite, { schema })
`

4. drizzle.config.ts

dialect: "postgresql"dialect: "sqlite", dbCredentials.url dosya yolu olur.

5. Migration yeniden üret

Eski drizzle/ klasörünü sil, npx drizzle-kit generate çalıştır. Snapshot versiyonu uyumsuz hatası alınırsa bu gerekli. Ardından npx drizzle-kit push ile tabloyu oluştur; data/ dizini önceden elle oluşturulmalı yoksa Cannot open database because the directory does not exist hatası gelir.

JSON sütunları için row.details artık string döner; kod tarafında JSON.parse() gerekir.