import { aboutMigrations } from '@/entities/about'; import { activityMenuMigrations } from '@/entities/activity-menu'; import { cityVisitMigrations } from '@/entities/city-visit'; import { clientMigrations } from '@/entities/client'; import { clientPiiExtractionMigrations } from '@/entities/client-pii-extraction'; import { contactSubmissionMigrations } from '@/entities/contact-submission'; import { contentPostMigrations } from '@/entities/content-post'; import { etiquetteMigrations } from '@/entities/etiquette'; import { heroStripMigrations } from '@/entities/hero-strip'; import { journalEntryMigrations } from '@/entities/journal-entry'; import { linkValueMigrations } from '@/entities/link-value'; import { policyMigrations } from '@/entities/policy'; import { positioningTagMigrations } from '@/entities/positioning-tag'; import { tourStopMigrations } from '@/entities/tour-stop'; import { touringSubscriptionMigrations } from '@/entities/touring-subscription'; import { openDb, runMigrations } from '@/shared/db'; import { logger } from '@/shared/logger'; const dbUrl = process.env['QUINN_DB_URL'] ?? 'postgres://quinn:quinn@localhost:25435/quinn'; async function main(): Promise { const db = openDb(dbUrl); try { await runMigrations(db, [ ...clientMigrations, ...clientPiiExtractionMigrations, ...journalEntryMigrations, ...contentPostMigrations, ...contactSubmissionMigrations, ...touringSubscriptionMigrations, ...tourStopMigrations, ...cityVisitMigrations, ...aboutMigrations, ...activityMenuMigrations, ...etiquetteMigrations, ...heroStripMigrations, ...linkValueMigrations, ...policyMigrations, ...positioningTagMigrations, ]); logger.info('Migrations complete.'); } finally { await db.end(); } } main().catch((err: unknown) => { logger.error('Migrate failed', { err: String(err) }); process.exit(1); });