diff --git a/Backup-and-Restore.-.md b/Backup-and-Restore.-.md new file mode 100644 index 0000000..de95bf2 --- /dev/null +++ b/Backup-and-Restore.-.md @@ -0,0 +1,77 @@ +# Backup and Restore + +## MSSQL Backup Restore + +The migration service restores SQL Server backups through the shared backup directory. + +Host: + +```text +DATABASE_BACKUP_DIR=/srv/mssql-backup +``` + +Migration service: + +```text +/upload/database +``` + +SQL Server: + +```text +/var/opt/mssql/backup +``` + +Restore scripts should use the shared path so SQL Server can access the uploaded `.bak` file. + +--- + +## Firebird Backup Restore + +Firebird support includes original helper scripts from the macOS installer payload: + +```text +/opt/romexis-firebird-db/tools/Romexis_Firebird_Backup.sh +/opt/romexis-firebird-db/tools/Romexis_Firebird_Restore.sh +``` + +Long-term restore strategy should support: + +```text +.fbk backup restore through gbak +.fdb file handling for compatible database files +``` + +For migrations, `gbak`-based restore is preferable because it can bridge Firebird ODS/version differences more safely than copying raw `.fdb` files. + +--- + +## Restart After Restore + +The migration service should not directly manipulate the Romexis process from the outside. + +Instead, it uses the shared restart state file: + +```text +/data/romexis_images/.romexis_restart_state +``` + +Expected pattern: + +1. migration service writes restart request +2. Romexis container notices request +3. Romexis process is restarted +4. Romexis container writes result +5. migration service reads result +6. migration service removes state file + +--- + +## Final Migration Completion + +A completed migration should: + +- preserve logs +- remove temporary SFTP user +- hide action buttons +- retain migration state for audit/debugging