Add automatic migration system on startup
This commit is contained in:
@@ -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;
|
||||
module.exports = app;
|
||||
|
||||
Reference in New Issue
Block a user