我使用Django 1.2和1.3以及MySql后端。将Django数据库后端从MySql更改为PostgreSQL
一旦同时与南方迁移我的MySQL数据库时收到一条错误消息:
! 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.
...
! The South developers regret this has happened, and would
! like to gently persuade you to consider a slightly
! easier-to-deal-with DBMS
我在想,如果我的迁移数据库从MySQL到PostgreSQL可以防止此错误。其次,从MySql迁移到PostgreSQL将会更多地涉及到在MySql dbase上执行dumpdata,将设置更改为指向PostgreSQL和新后端的加载数据?
我看到了this stackoverflow的问题,但它谈到他的数据库太大。我不认为这将是我的数据库的情况。我的Django项目中没有任何自定义SQL命令。
只是尽量在回答中给出的mysql2postgres http://stackoverflow.com/ a/8385094/540341 - 如果一切顺利,则需要几分钟时间。您可以在迁移之前备份您的数据库和配置以100%安全。 – filiprem 2012-01-17 14:22:58
另一种选择是留在MySQL上,但改变表InnoDB引擎。见http://stackoverflow.com/questions/4834415/does-djangos-south-migration-tool-work-for-innodb – filiprem 2012-01-17 14:26:09
@filiprem,谢谢,这可能有效。我感兴趣的是,如果专门迁移到PostgreSQL也会避免这种情况。我还有其他几个想要迁移的原因。我阅读了有关mysql2postgres的信息,如果简单的dumpdata/loaddata出现问题,它将是一个很好的回退。 – 2012-01-17 15:08:08