Automatische Datenbank-Backups
Sichert die SQLite-Datenbank periodisch (Standard: alle 24h) nach server/data/backups und räumt alte Sicherungen auf (Standard: 14 behalten). Zusätzlich per POST /api/backup manuell auslösbar.
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
const express = require('express');
|
||||
const cors = require('cors');
|
||||
const db = require('./db');
|
||||
const { startBackupScheduler, runBackup } = require('./backup');
|
||||
|
||||
const app = express();
|
||||
app.use(cors());
|
||||
@@ -364,6 +365,17 @@ app.get('/api/utilization', (req, res) => {
|
||||
|
||||
app.get('/health', (req, res) => res.json({ ok: true }));
|
||||
|
||||
// ---------- backup ----------
|
||||
|
||||
app.post('/api/backup', async (req, res) => {
|
||||
try {
|
||||
const file = await runBackup();
|
||||
res.status(201).json({ file });
|
||||
} catch (err) {
|
||||
res.status(500).json({ error: 'Backup fehlgeschlagen' });
|
||||
}
|
||||
});
|
||||
|
||||
// serve built frontend in production
|
||||
const path = require('path');
|
||||
const fs = require('fs');
|
||||
@@ -377,4 +389,5 @@ if (fs.existsSync(clientDist)) {
|
||||
|
||||
app.listen(PORT, () => {
|
||||
console.log(`Ressourcenplanung-API läuft auf http://localhost:${PORT}`);
|
||||
startBackupScheduler();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user