在现有数据库上安装South的问题.MySql不支持'模式更改语句'

Dan*_*ill 4 mysql django django-south

我有一个带有现有数据库的django项目,我真的想避免转储或中断.我正在尝试安装South但是当我运行初始迁移时python manage.py migrate example出现以下错误:

Running migrations for example:
- Migrating forwards to 0001_initial.
> example:0001_initial
! 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 `example_page` CASCADE; []
= DROP TABLE `example_likebydate` CASCADE; []
= DROP TABLE `example_followbydate` CASCADE; []

! The South developers regret this has happened, and would
! like to gently persuade you to consider a slightly
! easier-to-deal-with DBMS.
! NOTE: The error which caused the migration to fail is further up.
Traceback (most recent call last):

...

File "/usr/local/lib/python2.7/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
raise errorclass, errorvalue
_mysql_exceptions.OperationalError: (1050, "Table 'example_page' already exists")
Run Code Online (Sandbox Code Playgroud)

因此,显而易见的解决方案是运行给定的SQL,但我不知道它会做什么,如果它将丢弃表并丢失我的数据,则不想运行它.

在不丢失数据的情况下,我可以选择使这个南迁移工作吗?

moc*_*ect 8

如果您的架构已经使用了用于创建0001_inital.py的models.py,那么您应该使用--fake运行初始迁移,以实质上告诉您已经处于架构的版本0001.