From 2d27c655a5e18e95e2494f2f4dfedfa7a98c489f Mon Sep 17 00:00:00 2001 From: "Torsten Schulz (local)" Date: Fri, 29 Aug 2025 10:56:38 +0200 Subject: [PATCH] =?UTF-8?q?feat(backend):=20Hinzuf=C3=BCgen=20der=20Datenb?= =?UTF-8?q?ank-Synchronisation=20zum=20Deployment-Skript?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Implementierung eines neuen Skripts zur Datenbank-Synchronisation im deploy-backend.sh. - Hinzufügen eines npm-Skripts "sync-db" in package.json zur Ausführung der Synchronisation. - Verbesserung des Deployment-Prozesses durch automatisierte Datenbankaktualisierungen. --- backend/package.json | 1 + backend/sync-database.js | 37 +++++++++++++++++++++++++++++++++++++ deploy-backend.sh | 5 +++++ 3 files changed, 43 insertions(+) create mode 100644 backend/sync-database.js diff --git a/backend/package.json b/backend/package.json index b18be6a..1844c4d 100644 --- a/backend/package.json +++ b/backend/package.json @@ -7,6 +7,7 @@ "scripts": { "start": "node server.js", "dev": "NODE_ENV=development node server.js", + "sync-db": "node sync-database.js", "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], diff --git a/backend/sync-database.js b/backend/sync-database.js new file mode 100644 index 0000000..94e36ba --- /dev/null +++ b/backend/sync-database.js @@ -0,0 +1,37 @@ +#!/usr/bin/env node + +/** + * Datenbank-Synchronisations-Script + * Führt Schema-Updates und Constraint-Bereinigung durch + */ + +import './config/loadEnv.js'; +import { syncDatabase } from './utils/syncDatabase.js'; +import { cleanupDatabaseConstraints } from './utils/cleanupDatabaseConstraints.js'; + +console.log('🗄️ Starte Datenbank-Synchronisation...'); + +async function main() { + try { + // 1. Datenbank-Synchronisation + console.log('📊 Führe Datenbank-Synchronisation durch...'); + await syncDatabase(); + console.log('✅ Datenbank-Synchronisation erfolgreich abgeschlossen'); + + // 2. Constraint-Bereinigung + console.log('🧹 Räume Datenbank-Constraints auf...'); + await cleanupDatabaseConstraints(); + console.log('✅ Constraint-Bereinigung erfolgreich abgeschlossen'); + + console.log('🎉 Alle Datenbank-Operationen erfolgreich abgeschlossen!'); + process.exit(0); + + } catch (error) { + console.error('❌ Fehler bei der Datenbank-Synchronisation:', error); + console.error('Stack Trace:', error.stack); + process.exit(1); + } +} + +// Script ausführen +main(); diff --git a/deploy-backend.sh b/deploy-backend.sh index 96b17a7..0ea7def 100644 --- a/deploy-backend.sh +++ b/deploy-backend.sh @@ -27,4 +27,9 @@ if [ -f .env ]; then sudo chmod 600 /opt/yourpart/backend/.env fi +# Datenbank-Synchronisation durchführen +echo "Running database synchronization..." +cd /opt/yourpart/backend +sudo -u www-data npm run sync-db + echo "Backend deployment completed!"