Postgresql
最可靠的 MariaDB 到 Postgres 轉儲方法
我正在將應用程序遷移到另一台伺服器,並且需要將數據庫內容從 MariaDB 遷移到 Postgresql。
大多數文件表明以下格式應該足以轉儲表:
mysqldump -u root -p --compatible=postgresql db > db.sql (and once with --default-character-set=utf8)
當我在 Postgres 中重新導入數據庫時,我遇到了一些語法錯誤;以前在 MySQL 數據庫中沒有發生過的事情,所以我懷疑它與 MariaDB 有關。之前將同一個數據庫從 MariaDB 遷移到另一個 MySQL 伺服器時,我遇到了類似的問題。
我查看了Postgres 文件推薦的一些工具,但無濟於事。
為了進一步實驗,我轉儲
--compatible=mysql
並導入到 MySQL 伺服器,以便使用 Postgres 集重新轉儲它,並添加:
SET standard_conforming_strings = 'off'; SET backslash_quote = 'on';
到轉儲文件的開頭,然後將其導入 postgres,這給了我一些成功,直到在轉儲文件中遇到另一個語法錯誤(此時,如 2498 行)。
是否有更可靠的方法將 MariaDB 數據庫轉換為與 postgres 兼容的轉儲?
我強烈建議為此使用工具而不是 mysqldump
過去我用過
https://github.com/philipsoutham/py-mysql2pgsql
大獲成功
我相信(已經完成了幾次成功的遷移)這
pgloader
是事實上最好的方法。您不會從 mysql 轉換轉儲文件,而是連接到源數據庫(或源數據庫文件),以便載入器可以查詢它所需的所有內容,然後迭代複製數據。