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)
|
### Finale Fixes (18.06.2025 - 02:35 Uhr)
|
||||||
|
|
||||||
#### Backups Route Fix
|
#### Backups Route Fix
|
||||||
- Problem: 500 Error bei `/backups` - `url_for('admin.create_backup')` existiert nicht
|
- Problem 1: 500 Error bei `/backups` - `url_for('admin.create_backup')` existiert nicht
|
||||||
- Lösung:
|
- Lösung 1:
|
||||||
- `url_for('admin.create_backup')` → `url_for('admin.create_backup_route')`
|
- `url_for('admin.create_backup')` → `url_for('admin.create_backup_route')`
|
||||||
- `url_for('admin.restore_backup', backup_id='')` → `/backup/restore/${backupId}`
|
- `url_for('admin.restore_backup', backup_id='')` → `/backup/restore/${backupId}`
|
||||||
- `url_for('admin.delete_backup', backup_id='')` → `/backup/delete/${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)
|
### Bereits gelöste Probleme (18.06.2025 - 02:30 Uhr)
|
||||||
1. **Customers-Licenses Template Fix**:
|
1. **Customers-Licenses Template Fix**:
|
||||||
- Problem: `url_for('api.toggle_license', license_id='')` mit leerem String
|
- Problem: `url_for('api.toggle_license', license_id='')` mit leerem String
|
||||||
|
|||||||
@@ -329,30 +329,40 @@ def backups():
|
|||||||
@login_required
|
@login_required
|
||||||
def create_backup_route():
|
def create_backup_route():
|
||||||
"""Manuelles Backup erstellen"""
|
"""Manuelles Backup erstellen"""
|
||||||
|
from flask import jsonify
|
||||||
success, result = create_backup(backup_type="manual", created_by=session.get('username'))
|
success, result = create_backup(backup_type="manual", created_by=session.get('username'))
|
||||||
|
|
||||||
if success:
|
if success:
|
||||||
flash(f'Backup erfolgreich erstellt: {result}', 'success')
|
return jsonify({
|
||||||
|
'success': True,
|
||||||
|
'message': f'Backup erfolgreich erstellt: {result}'
|
||||||
|
})
|
||||||
else:
|
else:
|
||||||
flash(f'Backup fehlgeschlagen: {result}', 'error')
|
return jsonify({
|
||||||
|
'success': False,
|
||||||
return redirect(url_for('admin.backups'))
|
'message': f'Backup fehlgeschlagen: {result}'
|
||||||
|
}), 500
|
||||||
|
|
||||||
|
|
||||||
@admin_bp.route("/backup/restore/<int:backup_id>", methods=["POST"])
|
@admin_bp.route("/backup/restore/<int:backup_id>", methods=["POST"])
|
||||||
@login_required
|
@login_required
|
||||||
def restore_backup_route(backup_id):
|
def restore_backup_route(backup_id):
|
||||||
"""Backup wiederherstellen"""
|
"""Backup wiederherstellen"""
|
||||||
|
from flask import jsonify
|
||||||
encryption_key = request.form.get('encryption_key')
|
encryption_key = request.form.get('encryption_key')
|
||||||
|
|
||||||
success, message = restore_backup(backup_id, encryption_key)
|
success, message = restore_backup(backup_id, encryption_key)
|
||||||
|
|
||||||
if success:
|
if success:
|
||||||
flash(message, 'success')
|
return jsonify({
|
||||||
|
'success': True,
|
||||||
|
'message': message
|
||||||
|
})
|
||||||
else:
|
else:
|
||||||
flash(f'Wiederherstellung fehlgeschlagen: {message}', 'error')
|
return jsonify({
|
||||||
|
'success': False,
|
||||||
return redirect(url_for('admin.backups'))
|
'message': f'Wiederherstellung fehlgeschlagen: {message}'
|
||||||
|
}), 500
|
||||||
|
|
||||||
|
|
||||||
@admin_bp.route("/backup/download/<int:backup_id>")
|
@admin_bp.route("/backup/download/<int:backup_id>")
|
||||||
|
|||||||
In neuem Issue referenzieren
Einen Benutzer sperren