feat(backend): Verbesserung der Datenbank-Synchronisation und Deployment-Logik
- Einführung eines optionalen Parameters STAGE im Deployment-Skript zur flexiblen Handhabung von Umgebungen. - Anpassung der Datenbank-Synchronisation, um immer Schema-Updates im Deployment-Modus durchzuführen. - Umbenennung der Synchronisationsfunktion für Klarheit und bessere Lesbarkeit. - Erweiterung der Konsolenausgaben zur besseren Nachverfolgbarkeit während des Deployments.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
// syncDatabase.js
|
||||
|
||||
import { initializeDatabase, syncModelsWithUpdates } from './sequelize.js';
|
||||
import { initializeDatabase, syncModelsWithUpdates, syncModelsAlways } from './sequelize.js';
|
||||
import initializeTypes from './initializeTypes.js';
|
||||
import initializeSettings from './initializeSettings.js';
|
||||
import initializeUserRights from './initializeUserRights.js';
|
||||
@@ -14,6 +14,7 @@ import initializeChat from './initializeChat.js';
|
||||
import initializeMatch3Data from './initializeMatch3.js';
|
||||
import updateExistingMatch3Levels from './updateExistingMatch3Levels.js';
|
||||
|
||||
// Normale Synchronisation (nur bei STAGE=dev Schema-Updates)
|
||||
const syncDatabase = async () => {
|
||||
try {
|
||||
// Zeige den aktuellen Stage an
|
||||
@@ -74,4 +75,59 @@ const syncDatabase = async () => {
|
||||
}
|
||||
};
|
||||
|
||||
export { syncDatabase };
|
||||
// Deployment-Synchronisation (immer Schema-Updates)
|
||||
const syncDatabaseForDeployment = async () => {
|
||||
try {
|
||||
// Zeige den aktuellen Stage an
|
||||
const currentStage = process.env.STAGE || 'nicht gesetzt';
|
||||
console.log(`🚀 Starte Datenbank-Synchronisation für Deployment (Stage: ${currentStage})`);
|
||||
console.log('✅ Deployment-Modus: Schema-Updates sind immer aktiviert');
|
||||
|
||||
console.log("Initializing database schemas...");
|
||||
await initializeDatabase();
|
||||
|
||||
console.log("Synchronizing models with schema updates...");
|
||||
await syncModelsAlways(models);
|
||||
|
||||
console.log("Setting up associations...");
|
||||
setupAssociations();
|
||||
|
||||
console.log("Initializing settings...");
|
||||
await initializeSettings();
|
||||
|
||||
console.log("Initializing types...");
|
||||
await initializeTypes();
|
||||
|
||||
console.log("Initializing user rights...");
|
||||
await initializeUserRights();
|
||||
|
||||
console.log("Initializing image types...");
|
||||
await initializeImageTypes();
|
||||
|
||||
console.log("Initializing forums...");
|
||||
await initializeForum();
|
||||
|
||||
console.log("Initializing Falukant...");
|
||||
await initializeFalukant();
|
||||
|
||||
console.log("Creating triggers...");
|
||||
await createTriggers();
|
||||
|
||||
console.log("Initializing chat...");
|
||||
await initializeChat();
|
||||
|
||||
// Match3-Initialisierung NACH der Model-Synchronisation
|
||||
console.log("Updating existing Match3 levels...");
|
||||
await updateExistingMatch3Levels();
|
||||
|
||||
console.log("Initializing Match3...");
|
||||
await initializeMatch3Data();
|
||||
|
||||
console.log('Database synchronization for deployment complete.');
|
||||
} catch (error) {
|
||||
console.error('Unable to synchronize the database for deployment:', error);
|
||||
throw error; // Fehler weiterwerfen
|
||||
}
|
||||
};
|
||||
|
||||
export { syncDatabase, syncDatabaseForDeployment };
|
||||
|
||||
Reference in New Issue
Block a user