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>
14 lines
668 B
TypeScript
14 lines
668 B
TypeScript
/**
|
||
* Sunucu açılışında bir kez çalışır (Next instrumentation konvansiyonu).
|
||
* Kredi-bitti hatırlatma taramasını başlatır — tek, sürekli çalışan
|
||
* container'da harici cron yerine in-process zamanlayıcı yeterli.
|
||
*/
|
||
export async function register() {
|
||
if (process.env.NEXT_RUNTIME !== "nodejs") return;
|
||
if (process.env.NEXT_PHASE === "phase-production-build") return;
|
||
// Ş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();
|
||
}
|