Postgresql

最可靠的 MariaDB 到 Postgres 轉儲方法

  • February 17, 2022

我正在將應用程序遷移到另一台伺服器,並且需要將數據庫內容從 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 轉換轉儲文件,而是連接到源數據庫(或源數據庫文件),以便載入器可以查詢它所需的所有內容,然後迭代複製數據。

引用自:https://serverfault.com/questions/633613