feat: prod app.db şemasını açılışta drizzle migration'larıyla eşitle
Some checks failed
Deploy / deploy (push) Failing after 13s
Some checks failed
Deploy / deploy (push) Failing after 13s
Volume'deki app.db yalnızca ilk kurulumda seed'den kopyalanıyordu; sonraki deploy'larda şemaya eklenen kolonlar (son örnek: kredi_bitti_at, kredi_hatirlatma_gonderildi_at) prod'a hiç ulaşmıyor ve 'no such column' hatalarıyla kırılıyordu. - drizzle-kit generate ile baseline migration üretildi (drizzle/0000_baslangic) - scripts/db-goc.mjs: entrypoint'te server'dan önce koşan migration runner; drizzle migrator protokolünü birebir taklit eder (__drizzle_migrations, sha256, created_at=journal.when) ama yalnızca @libsql/client'a dayanır — drizzle-orm standalone imajda bundle'landığından paket olarak çözülemiyor - Benimseme: migration kaydı olmayan mevcut volume'lerde baseline additive uzlaştırılır (IF NOT EXISTS + snapshot'tan eksik kolon ALTER'ları) ve damgalanır; sonraki migration'lar normal akışla uygulanır - sema-guvence.ts kaldırıldı: elle DDL aynalama yerini migration'lara bıraktı - Yeni akış: şema değişikliğinde pnpm db:generate ile migration commit'lenir Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -6,10 +6,8 @@
|
||||
export async function register() {
|
||||
if (process.env.NEXT_RUNTIME !== "nodejs") return;
|
||||
if (process.env.NEXT_PHASE === "phase-production-build") return;
|
||||
// Migration akışı olmadığından sonradan eklenen tablolar açılışta güvenceye
|
||||
// alınır (additive DDL, idempotent) — mevcut prod volume'ü seed'den kopyalanmaz.
|
||||
const { semayiGuvenceyeAl } = await import("./lib/appdb/sema-guvence");
|
||||
await semayiGuvenceyeAl();
|
||||
// Şema, konteyner açılışında scripts/db-goc.mjs'in uyguladığı drizzle
|
||||
// migration'larıyla güncellenir (bkz. docker-entrypoint.sh); burada DDL koşmaz.
|
||||
const { krediHatirlatmaBaslat } = await import("./lib/kredi-hatirlatma");
|
||||
krediHatirlatmaBaslat();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user