Backup kann man jetzt auch machen
Dieser Commit ist enthalten in:
Dateidiff unterdrückt, weil mindestens eine Zeile zu lang ist
1
backups/backup_v2docker_20250618_021107_encrypted.sql.gz.enc
Normale Datei
1
backups/backup_v2docker_20250618_021107_encrypted.sql.gz.enc
Normale Datei
Dateidiff unterdrückt, weil mindestens eine Zeile zu lang ist
@@ -9,12 +9,19 @@
|
||||
### Finale Fixes (18.06.2025 - 02:35 Uhr)
|
||||
|
||||
#### Backups Route Fix
|
||||
- Problem: 500 Error bei `/backups` - `url_for('admin.create_backup')` existiert nicht
|
||||
- Lösung:
|
||||
- Problem 1: 500 Error bei `/backups` - `url_for('admin.create_backup')` existiert nicht
|
||||
- Lösung 1:
|
||||
- `url_for('admin.create_backup')` → `url_for('admin.create_backup_route')`
|
||||
- `url_for('admin.restore_backup', backup_id='')` → `/backup/restore/${backupId}`
|
||||
- `url_for('admin.delete_backup', backup_id='')` → `/backup/delete/${backupId}`
|
||||
|
||||
- Problem 2: "SyntaxError: Unexpected token '<'" beim Backup erstellen
|
||||
- Ursache: Routes gaben HTML (redirect) statt JSON zurück
|
||||
- Lösung 2:
|
||||
- `create_backup_route()` und `restore_backup_route()` geben jetzt JSON zurück
|
||||
- Entfernt: `return redirect(url_for('admin.backups'))`
|
||||
- Hinzugefügt: `return jsonify({'success': True/False, 'message': '...'})`
|
||||
|
||||
### Bereits gelöste Probleme (18.06.2025 - 02:30 Uhr)
|
||||
1. **Customers-Licenses Template Fix**:
|
||||
- Problem: `url_for('api.toggle_license', license_id='')` mit leerem String
|
||||
|
||||
@@ -329,30 +329,40 @@ def backups():
|
||||
@login_required
|
||||
def create_backup_route():
|
||||
"""Manuelles Backup erstellen"""
|
||||
from flask import jsonify
|
||||
success, result = create_backup(backup_type="manual", created_by=session.get('username'))
|
||||
|
||||
if success:
|
||||
flash(f'Backup erfolgreich erstellt: {result}', 'success')
|
||||
return jsonify({
|
||||
'success': True,
|
||||
'message': f'Backup erfolgreich erstellt: {result}'
|
||||
})
|
||||
else:
|
||||
flash(f'Backup fehlgeschlagen: {result}', 'error')
|
||||
|
||||
return redirect(url_for('admin.backups'))
|
||||
return jsonify({
|
||||
'success': False,
|
||||
'message': f'Backup fehlgeschlagen: {result}'
|
||||
}), 500
|
||||
|
||||
|
||||
@admin_bp.route("/backup/restore/<int:backup_id>", methods=["POST"])
|
||||
@login_required
|
||||
def restore_backup_route(backup_id):
|
||||
"""Backup wiederherstellen"""
|
||||
from flask import jsonify
|
||||
encryption_key = request.form.get('encryption_key')
|
||||
|
||||
success, message = restore_backup(backup_id, encryption_key)
|
||||
|
||||
if success:
|
||||
flash(message, 'success')
|
||||
return jsonify({
|
||||
'success': True,
|
||||
'message': message
|
||||
})
|
||||
else:
|
||||
flash(f'Wiederherstellung fehlgeschlagen: {message}', 'error')
|
||||
|
||||
return redirect(url_for('admin.backups'))
|
||||
return jsonify({
|
||||
'success': False,
|
||||
'message': f'Wiederherstellung fehlgeschlagen: {message}'
|
||||
}), 500
|
||||
|
||||
|
||||
@admin_bp.route("/backup/download/<int:backup_id>")
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren