Brightway 中的备份:如何使用它们

Backups in Brightway: how to use them

我将对方法和 biosphere3 数据库进行一些修改。因为我可能会破坏东西(我以前有过),所以我想创建备份。

谢天谢地,有 backup() 方法可以做到这一点。例如:

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

根据docs,这个"Write[s] a backup version of the data to the backups directory."这样做确实创建了一个备份,这个备份的位置在调用backup().

时很方便返回

我想做的是加载此备份并在需要时替换我损坏的数据库。文档似乎对此保持沉默,尽管 serialize 上的文档说 "filepath (str, optional): Provide an alternate filepath (e.g. for backup)."

如何使用保存的版本恢复数据库?

作为奖励问题:increment_version(database, number=None) 是如何调用的,如何使用它来帮助进行数据库管理?

backup 的代码非常简单:

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

    Returns:
        File path of backup.

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

因此您将恢复与任何 BW2Package:

相同的内容
from brightway2 import *
BW2Package.import_file(filepath)

但是,如果建议改用 backup_project_directory(project)restore_project_directory(filepath),因为它们不经过(较旧的)中间格式。

increment_version 仅用于单文件数据库后端,每次保存数据库时自动调用。您可以将版本控制添加到 sqlite 数据库后端,但这是非常重要的。