有沒有人這樣做?這是一個簡單的過程嗎?我們正在考慮切換事務,因爲最近mysql似乎正在「退出」。如何輕鬆將Django應用程序從mySQL轉換爲PostgreSQL?
回答
我剛剛使用這個工具來遷移一個內部的應用程序,它的工作非常好。 https://github.com/maxlapshin/mysql2postgres
我還沒有做過。 我首先關注這個migration guide, there is a MySql section這應該照顧所有的數據。然後django只需在設置中將mysql切換到postgre。我認爲這應該沒問題。
我發現了另一個關於stackoverflow的問題,它應該有助於將mysql轉換爲postgre here。
您可以使用Django序列化程序將數據從MySQL格式輸出到JSON,然後返回到Postgres。有互聯網上一些好的artices有關:
蟒蛇manage.py dump.data >> data.json
在postrgesql創建數據庫和用戶
- 在django設置中將您剛創建的數據庫設置爲默認數據庫中的postrgesql,或者使用param --datab ase = your_postrgesql_database下一步
運行syncdb以創建表。
蟒執行syncdb [--database = your_postrgesql_database] --noinput
沒有數據創建轉儲,丟棄所有表和負載突降。或截斷所有表(表django_content_type whith數據可能不等於您的舊數據 - 這是很多錯誤的方式)。在這一步,我們需要postgresql-db中的空表。
當你在空表PostgreSQL的分貝只是加載數據:
蟒蛇manage.py loaddata data.json
而且很有趣!
我寫了複製一個數據庫到另一個Django的管理命令: https://gist.github.com/mturilin/1ed9763ab4aa98516a7d
您需要在設置中添加數據庫和使用這個命令:
./manage.py copy_db from_database to_database app1 app2 app3 --delete --ignore-errors
什麼酷的這個命令它遞歸複製依賴對象。例如,如果模型有兩個外鍵和兩個多對多關係,它將首先複製其他對象以確保您不會收到外鍵違例錯誤。
Django的
首先備份您的JSON燈具老Mysql數據庫的數據轉換MySQL數據庫Postgres數據庫:
$ python manage.py dumpdata contenttypes --indent=4 --natural-foreign > contenttype.json
$ python manage.py dumpdata --exclude contenttypes --indent=4 --natural-foreign > everything_else.json
然後你settings.DATABASES切換到Postgres的設置。
PostgreSQL中創建表:
$ python manage.py migrate
現在刪除所有被自動遷移作出(Django的CONTENTTYPES,用戶組等)內容:
$ python manage.py sqlflush | ./manage.py dbshell
,現在你可以放心地進口一切,並保持你的PK是一樣的!
$ python manage.py loaddata contenttype.json
$ python manage.py loaddata everything_else.json
測試和Django == 1.8
- 1. 輕鬆地將NSComboBox轉換爲NSTextField
- 2. 如何將Cookies集合轉換爲通用列表?輕鬆
- 3. 如何將Heroku應用程序從MySql切換到PostgreSql
- 4. 如何將一個整數轉換爲兩個並輕鬆地轉換轉換?
- 5. 您可以輕鬆將WPF應用程序轉換爲WPF XBAP應用程序嗎?
- 6. 輕鬆地將Android庫切換到應用程序(&返回)
- 7. 將Django應用程序轉換爲DRF應用程序
- 8. 如何輕鬆地將PEAR依賴與應用程序打包?
- 9. 如何輕鬆將vkeys ALT組合轉換爲文本?
- 10. 如何輕鬆將我的LinearLayouts轉換爲RelativeLayouts
- 11. 如何輕鬆將java8映射轉換爲併發映射?
- 12. 如何將基本的HTML主題輕鬆轉換爲角?
- 13. 如何輕鬆將Evernote筆記本轉換爲Wordpress類別
- 14. 如何輕鬆將我的POJO轉換爲JSON數據?
- 15. 如何輕鬆將舊代碼轉換爲WCF?
- 16. 如何輕鬆將BufferedReader轉換爲字符串?
- 17. 如何輕鬆地將QString轉換爲點(x,y,z)?
- 18. 如何輕鬆將秒轉換爲MDX中的時間戳(HH:MM:SS)
- 19. 如何輕鬆將numpy.ndarray轉換爲numpy.array列表?
- 20. 如何將django web應用程序轉換爲桌面應用程序
- 21. 將特定行從Postgresql轉換爲mysql
- 22. 現有的WPF應用程序可以輕鬆轉換爲MonoDroid嗎?
- 23. 如何將Django應用程序轉換爲RoR?
- 24. 如何將rails 4應用程序的數據庫從sqlite3轉換爲postgresql?
- 25. 輕鬆訪問Rails應用程序?
- 26. 輕鬆修補OS X應用程序
- 27. 如何將iPhone應用程序轉換爲iPad應用程序
- 28. 如何將Phonegap應用程序轉換爲iphone應用程序?
- 29. 如何將AngularJS應用程序轉換爲android應用程序
- 30. 如何將j2me應用程序轉換爲android應用程序?
1)MySQL的支持事務處理(InnoDB的)2)是什麼讓你覺得MySQL是 「crapping出」 了嗎? – 2011-02-11 01:13:15
因爲現在我們剛剛開始聽到這些錯誤的聲音:OperationalError:(1205,'Lock超時超時;嘗試重新啓動事務')另外,在Django中使用South有時會在沒有真正事務的情況下受到傷害。 – 2011-02-11 14:43:28
MySQL不支持模式事務 - 這可能會導致大量令人頭痛的遷移 – yarbelk 2013-02-18 05:20:27