Python 如何智能地合并Django数据库?

Python 如何智能地合并Django数据库?,python,django,postgresql,django-models,django-database,Python,Django,Postgresql,Django Models,Django Database,我有一个Django项目,有5个不同的PostgreSQL数据库。该项目在模型路由方面是先发制人地分开的,但是已经被证明是相当有问题的,所以现在我正试图逆转它。不幸的是,空的、迁移的表之间有一些重叠,所以pg_转储是不可能的。看起来django dumpdb可能适合我的需要,但它不能处理每个数据库的导出/导入。此外,Django的dumpdata/loaddata正在从生成的fixture安装0条记录。关于合并数据的最省力的方法,我可以提出一些建议吗?总会有来自django的转储数据,这非常容易

我有一个Django项目,有5个不同的PostgreSQL数据库。该项目在模型路由方面是先发制人地分开的,但是已经被证明是相当有问题的,所以现在我正试图逆转它。不幸的是,空的、迁移的表之间有一些重叠,所以pg_转储是不可能的。看起来django dumpdb可能适合我的需要,但它不能处理每个数据库的导出/导入。此外,Django的dumpdata/loaddata正在从生成的fixture安装0条记录。关于合并数据的最省力的方法,我可以提出一些建议吗?

总会有来自django的转储数据,这非常容易使用

或者您可以手动执行此操作:

  • 如果这两个数据库共享相同的数据(它们彼此镜像)和相同的表结构,您可以从django运行syncdb来创建新的表结构,然后将旧数据库转储并导入到新数据库中(我假设您使用的是mysql,但总体思路是相同的)
  • 如果两个数据库共享不同的数据(仍然具有相同的结构),您应该导入两个数据库的每一行:这样,您将保持关系等,但您的唯一id将更新为新的唯一数据库
  • 如果这两个数据库在数据和结构上都不同,则必须运行两个sincdb和两个导入,但情况似乎并非如此

    • 我遇到了类似的问题,两个相同的网站共享多个模型,但对象不同。不幸的是,通过自然_键合并它们是不可能的

      我必须实现一个类似于loaddata的新django命令,以便将第二个网站中的所有模型附加到第一个网站中

      您可以在以下要点中找到解决方案的代码:


      不幸的是,当我这样做时,没有一个装置被安装到目标数据库中,Django也没有给我任何错误。