Python 如何将Django应用程序指向新数据库而不删除以前的数据库?
我正在使用设置文件中的Python 如何将Django应用程序指向新数据库而不删除以前的数据库?,python,django,Python,Django,我正在使用设置文件中的appdb数据库开发分支A上的Django应用程序。现在我需要处理另一个分支(B),它有一些新的DB更改(例如新列等)。对我来说,最简单的方法是通过更改settings.py将分支B指向不同的DB,然后应用迁移。我进行了迁移,但出现了类似于1146的错误,表'appdb_b.django_site'不存在。那么,如何在不删除数据库的情况下为我的branchB代码使用不同的数据库呢?appdb?现有的迁移文件包含的信息会使migrate命令认为表应该存在,因此它会抱怨表不存在
appdb
数据库开发分支A上的Django应用程序。现在我需要处理另一个分支(B),它有一些新的DB更改(例如新列等)。对我来说,最简单的方法是通过更改settings.py
将分支B指向不同的DB,然后应用迁移。我进行了迁移,但出现了类似于1146的错误,表'appdb_b.django_site'不存在
。那么,如何在不删除数据库的情况下为我的branchB代码使用不同的数据库呢?appdb?现有的迁移文件包含的信息会使migrate命令认为表应该存在,因此它会抱怨表不存在
您需要将迁移文件移出migrations目录(除了init.py之外的所有内容),然后执行makemigrations,然后进行迁移 在切换到另一个分支之前,appdb_b是否是appdb的副本?
appdb_b
是一个空数据库。这不是一个复制品,这可能是你出错的原因。当迁移文件讲述模型如何变化时,当您运行其中一个模型时,数据库状态可能与当时的状态相似。您可以先尝试使用appdb的副本,然后编写一个自定义迁移文件,删除所有不需要的内容(我不确定这是一种非常干净的方法,但如果有帮助,请告诉我)。我需要一个新的db副本。我删除所有自动生成的迁移文件。首先删除数据库,然后再次创建数据库,然后运行迁移似乎可以工作。