Files
kolaytercih/src/instrumentation.ts
bilalgursen 45775c8c3f
Some checks failed
Deploy / deploy (push) Failing after 13s
feat: prod app.db şemasını açılışta drizzle migration'larıyla eşitle
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>
2026-08-07 01:05:42 +03:00

14 lines
668 B
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* 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();
}