我使用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