0

我遇到了这个问题:我遇到了一些迁移问题,我尝试了很多次,在途中,我删除了迁移并再次尝试,甚至删除了 db 中的一个表。db中没有数据,所以我不必担心。但现在如果我尝试syncdb它不会创建我手动删除的表。

老实说,每次遇到此类迁移问题时,我都会陷入困境。

我应该怎么做才能再次创建表?

4

4 回答 4

2

为确保您正在删除南方历史记录并像不存在南方一样使用 syncdb,您必须在两个地方删除迁移:

  1. 在数据库中:删除由南创建的表
  2. 迁移文件:删除南使用的文件夹。它们就像“app_name/migrations”

如果您不需要数据库中的任何数据(例如因为它正在测试),而不是仅删除南表,您建议进行完全重置。做到这一点的突击队是

python manage.py reset_db --router=default

希望能帮助到你!

一些额外的帮助

通常,当您使用 syncdb 并且 south 在您的 INSTALLED_APPS 中时,您会收到一条消息,指出某些应用程序不会同步并且您必须使用迁移。尝试做一个syncdb并查看无法同步的应用程序。如果其中有一些,请删除该应用程序中的“迁移”文件夹并再次创建一个同步数据库。该应用不应再次出现在无法同步的列表中。

于 2013-08-01T17:27:41.010 回答
0

尝试在应用程序中使用命令重置,如下所示:

python manage.py reset my_app
于 2013-08-01T13:59:26.933 回答
0

你在用south吗?

如果是,则存在一个迁移历史数据库。确保删除提及要再次运行的迁移的行。

于 2013-08-01T13:55:57.113 回答
0

尝试重命名迁移文件并运行python manage.py syncdb.

于 2015-04-02T07:45:03.780 回答