1

我正在尝试重置我的南迁移历史,但无法为 myapp 运行迁移。我的 settings.py 是:

...
'south',
'myapp',
'allauth',
'allauth.account',
'allauth.socialaccount',
'allauth.socialaccount.providers.facebook',
'payments',

不幸的是,我尝试过的方法对我不起作用:

  1. 删除/rm所有现有的迁移文件
  2. 注释掉除南之外的所有内容
  3. 运行初始同步数据库
  4. ./manage.py schemamigration app_name --initial为每个应用程序运行
  5. 然后一一迁移应用

此过程适用于除 myapp 之外的所有内容。当我尝试为 myapp 进行初始迁移时,我得到:

hostMigrations: 
! These migrations are in the database but not on disk:
<myapp: 0002_..._>
! I'm not trusting myself; either fix this yourself by fiddling
! with the south_migrationhistory table, or pass --delete-ghost-migrations
! to South to have it delete ALL of these records (this may not be good).

如果我通过 --delete-ghost-migrations 那么它告诉我没有什么可以迁移到 myapp 的,显然情况并非如此。当我 --fake 0002 它告诉我在 0002 之后没有其他东西可以迁移。还有其他方法可以解决这个问题吗?

4

1 回答 1

3

要完全删除迁移历史记录,您需要删除数据库表中的每一行。

转到您的数据库并删除south_migrationhistory表中的所有行:

delete from south_migrationhistory;

或者,如果您只想重置特定应用的历史记录,您可以执行以下操作:

delete from south_migrationhistory where app_name='your_app_name';

希望这可以帮助!

于 2013-06-26T14:14:33.500 回答