2016-07-19 4 views
0

Ich werde einige Änderungen an Methoden und der biosphere3 Datenbank vornehmen. Da ich die Dinge (ich habe vorher) brechen könnte, möchte ich Backups erstellen.Backups in Brightway: wie man sie benutzt

Zum Glück gibt es backup() Methoden für genau dies. Zum Beispiel:

myBiosphere = Database('biosphere3') 
myBiosphere.backup() 

Nach den docs dieser "Write [s] eine Backup-Version der Daten an die Sicherungen Verzeichnis." Dadurch wird in der Tat eine Sicherungskopie erstellt, und der Speicherort dieser Sicherung wird beim Aufruf von backup() zurückgegeben.

Was ich tun möchte, ist dieses Backup zu laden und die Datenbank, die ich gebrochen habe, wenn nötig zu ersetzen. Die Dokumente scheinen dies zu verschweigen, obwohl die Dokumente unter serialize sagen "Dateipfad (str, optional): Stellen Sie einen alternativen Dateipfad (z. B. für die Sicherung)."

Wie kann man eine Datenbank mit einer gespeicherten Version wiederherstellen?

Als eine Bonusfrage: Wie wird increment_version(database, number=None) aufgerufen, und wie kann man es bei der Datenbankverwaltung verwenden?

Antwort

0

Der Code zu backup ist ganz einfach:

def backup(self): 
    """Save a backup to ``backups`` folder. 

    Returns: 
     File path of backup. 

    """ 
    from bw2io import BW2Package 
    return BW2Package.export_obj(self) 

So würden Sie das gleiche wie bei jedem BW2Package wieder her:

from brightway2 import * 
BW2Package.import_file(filepath) 

Wenn jedoch stattdessen mit backup_project_directory(project) und restore_project_directory(filepath) empfehlen, da sie gehe nicht durch ein (älteres) Zwischenformat.

increment_version ist nur für das Einzeldatei-Datenbank-Backend und wird bei jedem Speichern der Datenbank automatisch aufgerufen. Sie könnten dem SQLite-Datenbank-Backend Versionierung hinzufügen, aber das ist nicht trivial.