← 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-core → drizzle-orm/sqlite-core. Tip farkları:
- serial → integer().primaryKey({ autoIncrement: true })
- jsonb → text (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.