使用 EnterpriseDB 迁移工具包将 MySQL 数据库迁移到 PostgreSQL
Migrate MySQL database to PostgreSQL using EnterpriseDB Migration Toolkit
我正在尝试使用 EnterpriseDB 迁移工具将我的 MySQL 数据库转换为 PostgreSQL。我的设置如下:
- Windows 10 x64
- MySQL 5.5.52 社区版 GPL
- EDB PostgreSQL 9.6.2-2
- EnterpriseDB 迁移工具包 50.0.1
问题是 - 它成功连接到源 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。随意将它用于您的项目。
我正在尝试使用 EnterpriseDB 迁移工具将我的 MySQL 数据库转换为 PostgreSQL。我的设置如下:
- Windows 10 x64
- MySQL 5.5.52 社区版 GPL
- EDB PostgreSQL 9.6.2-2
- EnterpriseDB 迁移工具包 50.0.1
问题是 - 它成功连接到源 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。随意将它用于您的项目。