syncdb是不是再次创建表?

时间:2013-08-01 13:51:06

标签: python django django-south

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

老实说,每次遇到这种类型的迁移问题我都会陷入困境。

我该怎样做才能再次创建表格?

4 个答案:

答案 0 :(得分:2)

为了确保您删除南方历史记录并使用syncdb,就像没有南方存在一样,您必须在两个位置删除迁移:

  1. 在数据库中:删除由south
  2. 创建的表格
  3. 迁移文件:删除南方使用的文件夹。它们就像“app_name / migrations”
  4. 如果您的数据库中不需要任何数据(例如,因为它正在测试),而不是只删除南表,建议您完全重置。这样做的突击队员是

    python manage.py reset_db --router=default
    

    希望它有所帮助!

    一些额外帮助

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

答案 1 :(得分:0)

你正在使用south吗?

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

答案 2 :(得分:0)

尝试在应用程序中使用命令reset,类似:

python manage.py reset my_app

答案 3 :(得分:0)

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