75 lines
2.2 KiB
JavaScript
75 lines
2.2 KiB
JavaScript
const express = require('express');
|
|
const { Router } = require('express');
|
|
const MigrationService = require('../services/MigrationService');
|
|
const dbManager = require('../database/DatabaseManager');
|
|
|
|
const router = Router();
|
|
|
|
// Migration Status abrufen
|
|
router.get('/migration/status', async (req, res) => {
|
|
try {
|
|
const status = await MigrationService.getMigrationStatus();
|
|
res.json(status);
|
|
} catch (error) {
|
|
console.error('Fehler beim Abrufen des Migrationsstatus:', error);
|
|
res.status(500).json({
|
|
error: 'Internal server error',
|
|
message: 'Fehler beim Abrufen des Migrationsstatus',
|
|
details: error.message
|
|
});
|
|
}
|
|
});
|
|
|
|
// Manuelle Migration starten
|
|
router.post('/migration/migrate', async (req, res) => {
|
|
try {
|
|
const result = await MigrationService.migrateJsonToSqlite();
|
|
res.json(result);
|
|
} catch (error) {
|
|
console.error('Fehler bei der Migration:', error);
|
|
res.status(500).json({
|
|
error: 'Migration failed',
|
|
message: 'Fehler bei der Migration',
|
|
details: error.message
|
|
});
|
|
}
|
|
});
|
|
|
|
// Rollback zu JSON (Notfall)
|
|
router.post('/migration/rollback', async (req, res) => {
|
|
try {
|
|
const result = await MigrationService.rollbackToJson();
|
|
res.json(result);
|
|
} catch (error) {
|
|
console.error('Fehler beim Rollback:', error);
|
|
res.status(500).json({
|
|
error: 'Rollback failed',
|
|
message: 'Fehler beim Rollback',
|
|
details: error.message
|
|
});
|
|
}
|
|
});
|
|
|
|
// Datenbank Health Check
|
|
router.get('/migration/health', async (req, res) => {
|
|
try {
|
|
const isHealthy = await dbManager.healthCheck();
|
|
res.json({
|
|
database: {
|
|
healthy: isHealthy,
|
|
status: isHealthy ? 'OK' : 'ERROR'
|
|
}
|
|
});
|
|
} catch (error) {
|
|
console.error('Health Check fehlgeschlagen:', error);
|
|
res.status(500).json({
|
|
database: {
|
|
healthy: false,
|
|
status: 'ERROR',
|
|
error: error.message
|
|
}
|
|
});
|
|
}
|
|
});
|
|
|
|
module.exports = router; |