使用EnterpriseDB Migration Toolkit将MySQL数据库迁移到PostgreSQL

时间:2017-03-02 19:37:42

标签: mysql postgresql migration postgresql-9.6 enterprisedb

我尝试使用EnterpriseDB Migration Tool将我的MySQL数据库转换为PostgreSQL。我的设置如下:

  • Windows 10 x64
  • MySQL 5.5.52社区版GPL
  • EDB PostgreSQL 9.6.2-2
  • EnterpriseDB Migration Toolkit 50.0.1

问题是 - 它成功连接到源MySQL和目标PostgreSQL但随后失败并出现错误"无法识别的配置参数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中的一个错误,但可能是我错过了什么。非常感谢任何帮助。

3 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

我认为你应该参考 this tool's documentation

根据此文档,您可以尝试添加一个命令行选项:

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

答案 2 :(得分:0)

我找到了解决方案 - DBTransfer。最初的版本非常老旧,因此我不得不解决一些问题。来源是here。随意将它用于您的项目。