MySQL Workbench:从 SQL 任何地方迁移到 MySQL 时出现类型错误
MySQL Workbench: TypeError when migrating from SQL Anywhere to MySQL
我正在尝试将一些数据从 SQL Anywhere 16 数据库迁移到 MySQL 以将数据转换为可用格式。我正在关注 this tutorial
在迁移过程中遇到以下错误。 Reverse engineer selected schemas
失败并显示以下日志消息:
Starting...
Connect to source DBMS...
- Connecting...
Connect to source DBMS done
Reverse engineer selected schemas....
Reverse engineering [dbname] from [dbname]
- Reverse engineering catalog information
Traceback (most recent call last):
File "C:\Program Files\MySQL\MySQL Workbench 6.3 CE\modules\db_sqlanywhere_re_grt.py", line 489, in reverseEngineer
return SQLAnywhereReverseEngineering.reverseEngineer(connection, catalog_name, schemata_list, context)
File "C:\Program Files\MySQL\MySQL Workbench 6.3 CE\modules\db_sqlanywhere_re_grt.py", line 169, in reverseEngineer
catalog = super(SQLAnywhereReverseEngineering, cls).reverseEngineer(connection, '', schemata_list, context)
File "C:\Program Files\MySQL\MySQL Workbench 6.3 CE\modules\db_generic_re_grt.py", line 237, in reverseEngineer
catalog = cls.reverseEngineerCatalog(connection, catalog_name)
File "C:\Program Files\MySQL\MySQL Workbench 6.3 CE\modules\db_generic_re_grt.py", line 388, in reverseEngineerCatalog
cls.reverseEngineerUserDatatypes(connection, catalog)
File "C:\Program Files\MySQL\MySQL Workbench 6.3 CE\modules\db_sqlanywhere_re_grt.py", line 41, in wrapped_method
res = method(cls, connection, *args)
File "C:\Program Files\MySQL\MySQL Workbench 6.3 CE\modules\db_sqlanywhere_re_grt.py", line 192, in reverseEngineerUserDatatypes
if cls.serverVersion().majorNumber < 12:
TypeError: serverVersion() takes exactly 2 arguments (1 given)
Traceback (most recent call last):
File "C:\Program Files\MySQL\MySQL Workbench 6.3 CE\workbench\wizard_progress_page_widget.py", line 192, in thread_work
self.func()
File "C:\Program Files\MySQL\MySQL Workbench 6.3 CE\modules\migration_schema_selection.py", line 175, in task_reveng
self.main.plan.migrationSource.reverseEngineer()
File "C:\Program Files\MySQL\MySQL Workbench 6.3 CE\modules\migration.py", line 369, in reverseEngineer
self.state.sourceCatalog = self._rev_eng_module.reverseEngineer(self.connection, self.selectedCatalogName, self.selectedSchemataNames, self.state.applicationData)
SystemError: TypeError("serverVersion() takes exactly 2 arguments (1 given)"): error calling Python module function DbSQLAnywhereRE.reverseEngineer
ERROR: Reverse engineer selected schemas: TypeError("serverVersion() takes exactly 2 arguments (1 given)"): error calling Python module function DbSQLAnywhereRE.reverseEngineer
Failed
这似乎是 Python 模块本身的错误,所以我完全不知道如何修复它。
您确实发现了迁移向导中的错误。请在 http://bugs.mysql.com 处填写错误报告。同时,您可以通过在文本编辑器中打开文件 C:\Program Files\MySQL\MySQL Workbench 6.3 CE\modules\db_sqlanywhere_re_grt.py 来解决此问题,转到第 192 行并更改行:
如果 cls.serverVersion().majorNumber < 12:
至
如果 cls.serverVersion(连接).majorNumber < 12:
然后再次保存文件和 运行 迁移向导。编辑时要小心,这是 python 文件,所以每个 space 的标识都有问题。
我正在尝试将一些数据从 SQL Anywhere 16 数据库迁移到 MySQL 以将数据转换为可用格式。我正在关注 this tutorial
在迁移过程中遇到以下错误。 Reverse engineer selected schemas
失败并显示以下日志消息:
Starting...
Connect to source DBMS...
- Connecting...
Connect to source DBMS done
Reverse engineer selected schemas....
Reverse engineering [dbname] from [dbname]
- Reverse engineering catalog information
Traceback (most recent call last):
File "C:\Program Files\MySQL\MySQL Workbench 6.3 CE\modules\db_sqlanywhere_re_grt.py", line 489, in reverseEngineer
return SQLAnywhereReverseEngineering.reverseEngineer(connection, catalog_name, schemata_list, context)
File "C:\Program Files\MySQL\MySQL Workbench 6.3 CE\modules\db_sqlanywhere_re_grt.py", line 169, in reverseEngineer
catalog = super(SQLAnywhereReverseEngineering, cls).reverseEngineer(connection, '', schemata_list, context)
File "C:\Program Files\MySQL\MySQL Workbench 6.3 CE\modules\db_generic_re_grt.py", line 237, in reverseEngineer
catalog = cls.reverseEngineerCatalog(connection, catalog_name)
File "C:\Program Files\MySQL\MySQL Workbench 6.3 CE\modules\db_generic_re_grt.py", line 388, in reverseEngineerCatalog
cls.reverseEngineerUserDatatypes(connection, catalog)
File "C:\Program Files\MySQL\MySQL Workbench 6.3 CE\modules\db_sqlanywhere_re_grt.py", line 41, in wrapped_method
res = method(cls, connection, *args)
File "C:\Program Files\MySQL\MySQL Workbench 6.3 CE\modules\db_sqlanywhere_re_grt.py", line 192, in reverseEngineerUserDatatypes
if cls.serverVersion().majorNumber < 12:
TypeError: serverVersion() takes exactly 2 arguments (1 given)
Traceback (most recent call last):
File "C:\Program Files\MySQL\MySQL Workbench 6.3 CE\workbench\wizard_progress_page_widget.py", line 192, in thread_work
self.func()
File "C:\Program Files\MySQL\MySQL Workbench 6.3 CE\modules\migration_schema_selection.py", line 175, in task_reveng
self.main.plan.migrationSource.reverseEngineer()
File "C:\Program Files\MySQL\MySQL Workbench 6.3 CE\modules\migration.py", line 369, in reverseEngineer
self.state.sourceCatalog = self._rev_eng_module.reverseEngineer(self.connection, self.selectedCatalogName, self.selectedSchemataNames, self.state.applicationData)
SystemError: TypeError("serverVersion() takes exactly 2 arguments (1 given)"): error calling Python module function DbSQLAnywhereRE.reverseEngineer
ERROR: Reverse engineer selected schemas: TypeError("serverVersion() takes exactly 2 arguments (1 given)"): error calling Python module function DbSQLAnywhereRE.reverseEngineer
Failed
这似乎是 Python 模块本身的错误,所以我完全不知道如何修复它。
您确实发现了迁移向导中的错误。请在 http://bugs.mysql.com 处填写错误报告。同时,您可以通过在文本编辑器中打开文件 C:\Program Files\MySQL\MySQL Workbench 6.3 CE\modules\db_sqlanywhere_re_grt.py 来解决此问题,转到第 192 行并更改行:
如果 cls.serverVersion().majorNumber < 12:
至
如果 cls.serverVersion(连接).majorNumber < 12:
然后再次保存文件和 运行 迁移向导。编辑时要小心,这是 python 文件,所以每个 space 的标识都有问题。