diff --git a/Dockerfile b/Dockerfile index efde12b..efb8a5a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -28,6 +28,9 @@ COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static # Copy node_modules for native dependencies like better-sqlite3 COPY --from=builder --chown=nextjs:nodejs /app/node_modules ./node_modules +# Copy drizzle migrations +COPY --from=builder --chown=nextjs:nodejs /app/drizzle ./drizzle + RUN mkdir -p /app/public /app/data && chown -R nextjs:nodejs /app/public /app/data ENV NODE_ENV=production PORT=3000 HOSTNAME=0.0.0.0 diff --git a/src/lib/db/index.ts b/src/lib/db/index.ts index cdfc91c..3370481 100644 --- a/src/lib/db/index.ts +++ b/src/lib/db/index.ts @@ -1,5 +1,6 @@ import Database from 'better-sqlite3'; import { drizzle } from 'drizzle-orm/better-sqlite3'; +import { migrate } from 'drizzle-orm/better-sqlite3/migrator'; import * as schema from './schema'; import path from 'path'; import fs from 'fs'; @@ -13,3 +14,12 @@ if (!fs.existsSync(dataDir)) { const dbPath = path.join(dataDir, 'candles.db'); const sqlite = new Database(dbPath); export const db = drizzle(sqlite, { schema }); + +// Run migrations on startup +try { + migrate(db, { migrationsFolder: path.join(process.cwd(), 'drizzle') }); + console.log('✅ Database migrations completed'); +} catch (error) { + console.error('❌ Migration failed:', error); + throw error; +}