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