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>
23 lines
740 B
Bash
23 lines
740 B
Bash
#!/bin/sh
|
||
set -e
|
||
|
||
# yokatlas.db salt-okunur referans verisi: her deploy'da imajdaki güncel kopya volume'e yazılır
|
||
cp -f /app/seed/yokatlas.db /app/data/
|
||
for ek in wal shm; do
|
||
if [ -f "/app/seed/yokatlas.db-$ek" ]; then
|
||
cp -f "/app/seed/yokatlas.db-$ek" /app/data/
|
||
fi
|
||
done
|
||
|
||
# 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
|