Für die Sicherung der Daten im datasqill Repository gibt es je nach Anwendungsfall verschiedene Methoden. Zu den zu sichernden Daten können gehören
Bei der vollständigen Sicherung wird das gesamte Repository gesichert.
Das datasqill Repository ist eine H2 Datenbank. Unter diesem Link finden sich Anleitungen zur Sicherung und Wiederherstellung einer H2 Datenbank.
Ein Sicherungsskript liegt auf dem datasqill Server unter
h2 backup
Es erstellt eine Sicherungsdatei mit Zeitstempel, die unter dem Verzeichnis "backup" abgelegt wird:
$ h2 backup
BACKUP to 'backup/BACKUP_20220313_1827.zip';
Es empfiehlt sich, solche Sicherungen regelmäßig anzulegen, indem zum Beispiel mit Hilfe eines Cron-Jobs ein tägliches Backup erzeugt wird. Ein Cronjob könnte so aussehen:
crontab -l
...
# Do a backup every day at 22:30
30 22 * * * . ./bin/h2.env && ./bin/h2 backup
...
Damit das Dateisystem nicht überläuft müssen die Backups regelmäßig gelöscht werden. Hier eine einfache Strategie per cron:
crontab -l
...
# Delete every Saturday at 22:40 backups which are older than 2 weeks
40 22 * * Sat find ./backup -maxdepth 1 -mtime +13 -type f -delete
...
Zur Wiederherstellung einer solchen Sicherung muss zunächst die H2 Datenbank heruntergefahren werden.
Anschließend kann die Zip-Datei mit der Sicherung entpackt und in das H2 Verzeichnis kopiert werden.
unzip backup/BACKUP_20220313_1827.zip
cp backup/datasqill.mv.db h2server/data
Danach wird die H2 Datenbank wieder neu gestartet.
Anstelle des gesamten Repositories können auch einzelne Transformationsblätter (Sheets) gesichert und wiederhergestellt werden.
Zur Sicherung eines einzelnen Blatts dient die Exportfunktion in der datasqill GUI. Ein Export kann über das Kontextmenü im Navigationsmenü angestoßen werden.
Alternativ kann der Exportknopf in der Werkzeugleiste eines geöffneten Blatts verwendet werden.
Als Ergebnis erhält man eine datasqill Exportdatei, zum Beispiel "sheet.dsr". Diese kann auf einem datasqill Server mit Hilfe des "deploySheet" Skripts wieder eingespielt werden. Dazu wird sie auf den Server übertragen und mit folgendem Kommando in das datasqill Repository geladen:
deploySheet.sh --option '{"validate":"true", "intoFolder":10135}' < sheet.dsr
Dabei ist die Id des Zielordner anzugeben (im Beispiel 10135). Diese kann vorher mit Hilfe der GUI ermittelt, im Navigationsbaum werden die Ordner mit ihrer Id angezeigt.