Add automatic migration system on startup

This commit is contained in:
2026-03-09 00:58:39 -05:00
parent 15f455387d
commit a11dec6d29

View File

@@ -4,6 +4,7 @@ const helmet = require('helmet');
const path = require('path'); const path = require('path');
const fs = require('fs'); const fs = require('fs');
const { initDatabase } = require('./db/init'); const { initDatabase } = require('./db/init');
const { runMigrations } = require('./db/migrations');
const app = express(); const app = express();
const PORT = process.env.PORT || 3000; const PORT = process.env.PORT || 3000;
@@ -19,9 +20,22 @@ if (!fs.existsSync(UPLOAD_PATH)) {
fs.mkdirSync(UPLOAD_PATH, { recursive: true }); fs.mkdirSync(UPLOAD_PATH, { recursive: true });
} }
// Initialize database // Initialize database schema (creates tables if they don't exist)
initDatabase(DB_PATH); 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 // Middleware
app.use(helmet({ app.use(helmet({
contentSecurityPolicy: false, // Allow inline scripts for React contentSecurityPolicy: false, // Allow inline scripts for React
@@ -67,13 +81,13 @@ app.use((err, req, res, next) => {
// Start server // Start server
app.listen(PORT, '0.0.0.0', () => { app.listen(PORT, '0.0.0.0', () => {
console.log(`\n🐕 BREEDR Server Running`); console.log(`\n🐕 BREEDR Server Running`);
console.log(`================================`); console.log(`=============================`);
console.log(`Environment: ${process.env.NODE_ENV || 'development'}`); console.log(`Environment: ${process.env.NODE_ENV || 'development'}`);
console.log(`Port: ${PORT}`); console.log(`Port: ${PORT}`);
console.log(`Database: ${DB_PATH}`); console.log(`Database: ${DB_PATH}`);
console.log(`Uploads: ${UPLOAD_PATH}`); console.log(`Uploads: ${UPLOAD_PATH}`);
console.log(`Access: http://localhost:${PORT}`); console.log(`Access: http://localhost:${PORT}`);
console.log(`================================\n`); console.log(`=============================\n`);
}); });
module.exports = app; module.exports = app;