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:
@@ -9,9 +9,14 @@ for ek in wal shm; do
|
||||
fi
|
||||
done
|
||||
|
||||
# app.db kullanıcı verisi: sadece volume'de yoksa (ilk kurulum) şema tohumu kopyalanır
|
||||
# app.db kullanıcı verisi: sadece volume'de yoksa (ilk kurulum) tohum kopyalanır
|
||||
# (tohum tadimlik_havuzu içeriği de taşır, salt şema değil)
|
||||
if [ ! -s /app/data/app.db ] && [ -f /app/seed/app.db ]; then
|
||||
cp /app/seed/app.db /app/data/
|
||||
fi
|
||||
|
||||
# Volume'deki app.db şeması güncel şemayla eşitlenir: drizzle/ altındaki
|
||||
# migration'lar uygulanır (idempotent; ilk koşuda mevcut şema benimsenir).
|
||||
node /app/scripts/db-goc.mjs
|
||||
|
||||
exec node server.js
|
||||
|
||||
Reference in New Issue
Block a user