From a11dec6d2932dc2a368c5276918aa9c59df0b171 Mon Sep 17 00:00:00 2001 From: jason Date: Mon, 9 Mar 2026 00:58:39 -0500 Subject: [PATCH] Add automatic migration system on startup --- server/index.js | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/server/index.js b/server/index.js index 230646d..8c22137 100644 --- a/server/index.js +++ b/server/index.js @@ -4,6 +4,7 @@ const helmet = require('helmet'); const path = require('path'); const fs = require('fs'); const { initDatabase } = require('./db/init'); +const { runMigrations } = require('./db/migrations'); const app = express(); const PORT = process.env.PORT || 3000; @@ -19,9 +20,22 @@ if (!fs.existsSync(UPLOAD_PATH)) { fs.mkdirSync(UPLOAD_PATH, { recursive: true }); } -// Initialize database +// Initialize database schema (creates tables if they don't exist) initDatabase(DB_PATH); +// Run migrations to ensure schema is up-to-date +try { + console.log('Running database migrations...'); + runMigrations(DB_PATH); + console.log('Database migrations complete!\n'); +} catch (error) { + console.error('\n⚠️ Database migration failed!'); + console.error('Error:', error.message); + console.error('\nThe application may not function correctly.'); + console.error('Please check the database and try again.\n'); + // Don't exit - let the app try to start anyway +} + // Middleware app.use(helmet({ contentSecurityPolicy: false, // Allow inline scripts for React @@ -67,13 +81,13 @@ app.use((err, req, res, next) => { // Start server app.listen(PORT, '0.0.0.0', () => { console.log(`\n🐕 BREEDR Server Running`); - console.log(`================================`); + console.log(`=============================`); console.log(`Environment: ${process.env.NODE_ENV || 'development'}`); console.log(`Port: ${PORT}`); console.log(`Database: ${DB_PATH}`); console.log(`Uploads: ${UPLOAD_PATH}`); console.log(`Access: http://localhost:${PORT}`); - console.log(`================================\n`); + console.log(`=============================\n`); }); -module.exports = app; \ No newline at end of file +module.exports = app;