使用 EnterpriseDB 迁移工具包将 MySQL 数据库迁移到 PostgreSQL

Migrate MySQL database to PostgreSQL using EnterpriseDB Migration Toolkit

我正在尝试使用 EnterpriseDB 迁移工具将我的 MySQL 数据库转换为 PostgreSQL。我的设置如下:

问题是 - 它成功连接到源 MySQL 和目标 PostgreSQL,但随后失败并出现错误 "unrecognized configuration parameter db_dialect":

C:\Program Files (x86)\edb\mtk\bin>runMTK -sourcedbtype mysql s2c_data 

Running EnterpriseDB Migration Toolkit (Build 50.0.1) ...  

Source database connectivity info...  
conn=jdbc:mysql://localhost:3306/s2c_data?zeroDateTimeBehavior=convertToNull 
user =s2c_data_user  
password=******  


Target database connectivity info...  
conn =jdbc:edb://localhost:5432/s2c_data  
user =s2c_data_user 
password=******  


Connecting with source MySQL database server...  
Connected to MySQL, version '5.5.52-log'  
Connecting with target EDB Postgres database server...  
Connected to PostgreSQL, version '9.6.2'  

Importing mysql schema s2c_data... 
MTK-17003:Error in copy tables: java.sql.SQLException: com.edb.util.PSQLException: ERROR: unrecognized configuration parameter: "db_dialect" 
MTK-03000: General Error DB-null: java.sql.SQLException: java.sql.SQLException: java.sql.SQLException: com.edb.util.PSQLException: ERROR: unrecognized configuration parameter: "db_dialect"


One or more schema objects could not be imported during the migration process. Please review the migration output for more details.

Migration logs have been saved to C:\Users\Alex_R\.enterprisedb\migration-toolkit\logs

******************** Migration Summary ********************

Total objects: 0 Successful count: 0 Failed count: 0 Invalid count: 0

*************************************************************

C:\Program Files (x86)\edb\mtk\bin>

有人遇到同样的问题吗?似乎是 EDB MTK 中的错误,但可能是我遗漏了一些东西。如有任何帮助,我们将不胜感激。

根据EDB's documentation,这是他们的 PostgreSQL 的 Postgres PLUS 分支的一个参数。

所以看起来这个迁移工具只有在你迁移到他们专有的 PostgreSQL 版本时才有效,而不是标准版本。

我想你应该参考一下 this tool's documentation.

根据这篇文档,也许你可以尝试添加一个命令行选项:

C:\Program Files (x86)\edb\mtk\bin>runMTK -sourcedbtype mysql -targetdbtype postgresql s2c_data

我找到了解决方案 - DBTransfer。原来的版本很旧而且有很多问题,所以我不得不修复一些东西。来源是here。随意将它用于您的项目。