From 63e88c8324153f1665edf2a9b229594c27182880 Mon Sep 17 00:00:00 2001 From: paul Date: Wed, 23 Jul 2025 09:07:41 +0200 Subject: [PATCH] CRITICAL FIX: correct email_templates column names in migration 032 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Production failing because email_templates table has different columns. Fixed column names: - name → template_key - subject → subject_en, subject_de - body → body_html_en, body_html_de, body_text_en, body_text_de - Added missing 'variables' field - Removed language and is_active fields (not in schema) Also fixed the down() function to use template_key instead of name. URGENT: Production is still down. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- .../migrations/032_add_restore_runs_table.js | 110 ++++++++++++------ 1 file changed, 73 insertions(+), 37 deletions(-) diff --git a/backend/migrations/032_add_restore_runs_table.js b/backend/migrations/032_add_restore_runs_table.js index 39e4fbf..5154074 100644 --- a/backend/migrations/032_add_restore_runs_table.js +++ b/backend/migrations/032_add_restore_runs_table.js @@ -125,9 +125,10 @@ exports.up = async function(knex) { // Add new email templates for restore notifications const emailTemplates = [ { - name: 'restore_completed', - subject: '✅ Restore Completed Successfully', - body: `

Restore Operation Completed

+ template_key: 'restore_completed', + subject_en: '✅ Restore Completed Successfully', + subject_de: '✅ Wiederherstellung erfolgreich abgeschlossen', + body_html_en: `

Restore Operation Completed

A restore operation has completed successfully.

Details:

@@ -140,32 +141,7 @@ exports.up = async function(knex) {

Please verify that all systems are functioning correctly after the restore.

`, - language: 'en', - is_active: true - }, - { - name: 'restore_failed', - subject: '❌ Restore Operation Failed', - body: `

Restore Operation Failed

-

A restore operation has failed and requires attention.

- -

Details:

- - -

Please check the system logs for more details and take appropriate action.

- -

Important: If a pre-restore backup was created, it may be used for recovery.

`, - language: 'en', - is_active: true - }, - { - name: 'restore_completed', - subject: '✅ Wiederherstellung erfolgreich abgeschlossen', - body: `

Wiederherstellungsvorgang abgeschlossen

+ body_html_de: `

Wiederherstellungsvorgang abgeschlossen

Ein Wiederherstellungsvorgang wurde erfolgreich abgeschlossen.

Details:

@@ -178,13 +154,50 @@ exports.up = async function(knex) {

Bitte überprüfen Sie, ob alle Systeme nach der Wiederherstellung ordnungsgemäß funktionieren.

`, - language: 'de', - is_active: true + body_text_en: `Restore Operation Completed + +A restore operation has completed successfully. + +Details: +- Restore Type: {{restore_type}} +- Duration: {{duration}} +- Files Restored: {{files_restored}} +- Backup ID: {{backup_id}} +- Timestamp: {{timestamp}} + +Please verify that all systems are functioning correctly after the restore.`, + body_text_de: `Wiederherstellungsvorgang abgeschlossen + +Ein Wiederherstellungsvorgang wurde erfolgreich abgeschlossen. + +Details: +- Wiederherstellungstyp: {{restore_type}} +- Dauer: {{duration}} +- Wiederhergestellte Dateien: {{files_restored}} +- Backup-ID: {{backup_id}} +- Zeitstempel: {{timestamp}} + +Bitte überprüfen Sie, ob alle Systeme nach der Wiederherstellung ordnungsgemäß funktionieren.`, + variables: JSON.stringify(['restore_type', 'duration', 'files_restored', 'backup_id', 'timestamp']) }, { - name: 'restore_failed', - subject: '❌ Wiederherstellungsvorgang fehlgeschlagen', - body: `

Wiederherstellungsvorgang fehlgeschlagen

+ template_key: 'restore_failed', + subject_en: '❌ Restore Operation Failed', + subject_de: '❌ Wiederherstellungsvorgang fehlgeschlagen', + body_html_en: `

Restore Operation Failed

+

A restore operation has failed and requires attention.

+ +

Details:

+ + +

Please check the system logs for more details and take appropriate action.

+ +

Important: If a pre-restore backup was created, it may be used for recovery.

`, + body_html_de: `

Wiederherstellungsvorgang fehlgeschlagen

Ein Wiederherstellungsvorgang ist fehlgeschlagen und erfordert Ihre Aufmerksamkeit.

Details:

@@ -197,8 +210,31 @@ exports.up = async function(knex) {

Bitte überprüfen Sie die Systemprotokolle für weitere Details und ergreifen Sie entsprechende Maßnahmen.

Wichtig: Falls ein Backup vor der Wiederherstellung erstellt wurde, kann es zur Wiederherstellung verwendet werden.

`, - language: 'de', - is_active: true + body_text_en: `Restore Operation Failed + +A restore operation has failed and requires attention. + +Details: +- Restore Type: {{restore_type}} +- Error: {{error_message}} +- Timestamp: {{timestamp}} + +Please check the system logs for more details and take appropriate action. + +Important: If a pre-restore backup was created, it may be used for recovery.`, + body_text_de: `Wiederherstellungsvorgang fehlgeschlagen + +Ein Wiederherstellungsvorgang ist fehlgeschlagen und erfordert Ihre Aufmerksamkeit. + +Details: +- Wiederherstellungstyp: {{restore_type}} +- Fehler: {{error_message}} +- Zeitstempel: {{timestamp}} + +Bitte überprüfen Sie die Systemprotokolle für weitere Details und ergreifen Sie entsprechende Maßnahmen. + +Wichtig: Falls ein Backup vor der Wiederherstellung erstellt wurde, kann es zur Wiederherstellung verwendet werden.`, + variables: JSON.stringify(['restore_type', 'error_message', 'timestamp']) } ]; @@ -208,7 +244,7 @@ exports.up = async function(knex) { exports.down = async function(knex) { // Remove email templates await knex('email_templates') - .whereIn('name', ['restore_completed', 'restore_failed']) + .whereIn('template_key', ['restore_completed', 'restore_failed']) .delete(); // Remove settings