Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将Django应用程序指向新数据库而不删除以前的数据库?_Python_Django - Fatal编程技术网

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副本。我删除所有自动生成的迁移文件。首先删除数据库,然后再次创建数据库,然后运行迁移似乎可以工作。