`db:push --force` als einziger Schema-Sync-Pfad war eine Falle: am 2026-05-18 wurde das pageta-postgres-Volume im Compose-Project- Collision-Fix neu initialisiert, der db:push lief nicht mehr, und die DB blieb wochenlang ohne reader-Schema unentdeckt liegen (Logs spammten `relation "reader.preferences" does not exist` für jeden Feed-Call). Erstmal heute manuell via drizzle-kit push --force in den Container repariert; jetzt nachhaltig: - `out: ./src/db/migrations` in drizzle.config.ts → versionierte SQL-Files im Repo (Pattern nach nutriphi) - `0000_initial.sql` initial generiert (8 Tabellen im reader-Schema) - `src/db/migrate.ts` als runMigrations-Helper - Opt-in Auto-Apply beim Boot via `PAGETA_RUN_MIGRATIONS=true` (Production-Compose setzt das Flag; Local-Dev bleibt bei db:push) - Idempotent über drizzle.__drizzle_migrations-Tracking-Tabelle — Volume-Reset führt jetzt automatisch zu sauberem Schema-Sync Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
13 lines
335 B
TypeScript
13 lines
335 B
TypeScript
import type { Config } from 'drizzle-kit';
|
|
|
|
export default {
|
|
schema: './src/db/schema.ts',
|
|
out: './src/db/migrations',
|
|
dialect: 'postgresql',
|
|
dbCredentials: {
|
|
url: process.env.DATABASE_URL ?? 'postgres://pageta:devpassword@localhost:5443/pageta',
|
|
},
|
|
schemaFilter: ['reader'],
|
|
verbose: true,
|
|
strict: true,
|
|
} satisfies Config;
|