django-south迁移期间出错

时间:2015-01-05 07:59:01

标签: python mysql django django-south

当我尝试使用south在django中迁移时,我收到以下错误。

Running migrations for sites:
    - Migrating forwards to 0004_initial.
     > sites:0002_initial
    FATAL ERROR - The following SQL query failed: CREATE TABLE `django_site` (`id`
    nteger AUTO_INCREMENT NOT NULL PRIMARY KEY, `domain` varchar(100) NOT NULL, `na
    e` varchar(50) NOT NULL)
    The error was: (1050, "Table 'django_site' already exists")
    ! Error found during real run of migration! Aborting.

    ! Since you have a database that does not support running
    ! schema-altering statements in transactions, we have had
    ! to leave it in an interim state between migrations.

! You *might* be able to recover with:   = DROP TABLE `django_site` CASCADE; []

 ! The South developers regret this has happened, and would
 ! like to gently persuade you to consider a slightly
 ! easier-to-deal-with DBMS (one that supports DDL transactions)
 ! NOTE: The error which caused the migration to fail is further up.
Error in migration: sites:0002_initial
Traceback (most recent call last):
  File "manage.py", line 10, in <module>
  .............

  django.db.utils.OperationalError: (1050, "Table 'django_site' already exists")

类似的问题也是开放的here。对此有什么解决方案吗?该错误似乎是由于github问题中讨论的Create table语句,或者可能存在其他错误。我无法弄明白。

1 个答案:

答案 0 :(得分:1)

如果django版本&lt; 1.7

python manage.py migrate yourapp --fake

否则

python manage.py migrate --fake

- fake:将迁移序列记录为已应用,但实际上并未运行它。 - &GT; more