如何创建Django数据库备份?

时间:2018-05-10 16:24:06

标签: django

我运行多个(或多或少)相同的Django(1.11)部署,这些部署在完全相同的架构上运行,但是不同的设置(我创建自己的Settings模型)。这些Settings模型中的值很多,每个部署都有所不同,因此这些网站可能会因设置而异,例如。

出现了一项业务要求,要求我定期从一个堆栈中导出这些Settings模型(DisplaySettingsCurrencySettings等),然后将它们导入另一个堆栈。我知道dumpdataloaddata以JSON文件的形式提供基本功能,但我还需要业务方面的这些额外功能:

  1. 管理员必须能够选择要导出的设置,包括可能在这些设置中的ForeignKeyManyToManyField关系。
  2. 导入该文件时,管理员必须能够选择要导入的文件中的哪些设置,以及如何(更新现有设置模型或创建新模型)。
  3. 可以将相同的导出文件重新导入到同一堆栈中,以创建这些设置的重复副本。
  4. 以下是我迄今为止尝试过的解决方案:

    1. dumpdata / loaddata:不需要"选择要导入/导出的设置"要求。
    2. django-import-export:仅支持导出表格结构,即外键无法作为设置记录的一部分导出。
    3. django-easydump:将转储上传到s3的完全不相关的包。可以指定要包含的模型,但不能指定要包含的每个模型中的属性。
    4. ModelSerializer中编写自定义嵌套djangorestframework:可行但乏味。需要自定义前端来处理第一个要求。
    5. 我的问题是:是否已经有内置的方法来执行所描述的导入/导出,或者如果没有,是否有任何合格的第三方软件包(上面没有列出),我显然已经错过了?

0 个答案:

没有答案