从Sybase到MySQL的数据库迁移:" error calling Python module function DbSQLAnywhereRE.reverseEngineer"



我正在尝试用MySQL Workbench迁移工具将数据库从Sybase迁移到MySQL。

连接数据源和目标数据库没有问题,但是当它开始迁移时,我从日志消息中得到以下问题:


开始……连接到源DBMS…

-连接…连接到源DBMS完成
逆向工程选定模式....
反向工程DBA, SYS, dbo, rs_systabgroup from corsi
-逆向工程目录信息
-准备…
回溯(最近一次调用):
文件"C:Program Files (x86)MySQLMySQL Workbench 6.3
CEmodulesdb_sqlanywhere_re_grt.py",第489行,在reverseEngineer
SQLAnywhereReverseEngineering返回。reverseEngineer(connection, catalog_name, schemata_list, context)
文件"C:Program Files (x86)MySQLMySQL Workbench 6.3 CEmodulesdb_sqlanywhere_re_grt.py",第169行,在reverseEngineer目录= super(SQLAnywhereReverseEngineering, cls)。reverseEngineer(connection, ", schemata_list, context)
文件"C:Program Files (x86)MySQLMySQL Workbench 6.3 CEmodulesdb_generic_re_grt.py",第258行,在reverseEngineerTable_count_per_schema [schema_name] = len(cls。getablenames (connection, catalog_name, schema_name)) if get_tables else 0
文件"C:Program Files (x86)MySQLMySQL Workbench 6.3 CEmodulesdb_sqlanywhere_re_grt.py",第41行,在wrapped_method .py中Res = method(cls, connection, *args)
文件"C:Program Files (x86)MySQLMySQL Workbench 6.3 CEmodulesdb_sqlanywhere_re_grt.py",第145行,在getTableNames对于cls中的行返回[row[0]。execute_query(连接、查询)]
文件"C:Program Files (x86)MySQLMySQL Workbench 6.3 CEmodulesdb_generic_re_grt.py",第76行,在execute_query返回cls.get_connection (connection_object) .cursor()。执行(query, *args, **kwargs)pyodbc。ProgrammingError: ('42S02', "[42S02] [Sybase][ODBC Driver][Adaptive Server Anywhere]Table or view not found: Table 'SYSTAB' not found (-141) (SQLExecDirectW)")

Traceback(最近一次调用):
File "C:Program Files(x86)MySQLMySQL Workbench 6.3CEworkbenchwizard_progress_page_widget.py",第192行,在thread_workself.func()
文件"C:Program Files (x86)MySQLMySQL Workbench 6.3 CEmodulesmigration_schema_selection.py",第175行,intask_revengself.main.plan.migrationSource.reverseEngineer()
File "C:Program Files (x86)MySQLMySQL Workbench 6.3CEmodulesmigration.py",第369行,在reverseEngineerself.state. sourceccatalog = self._rev_eng_module.reverseEngineer(self.connection;自我。selectedCatalogName self.selectedSchemataNames,self.state.applicationData)系统错误:ProgrammingError("('42S02',"[42S02] [Sybase][ODBC Driver][adaptiveserveranywhere]表或视图Table 'SYSTAB' not found (-141) (SQLExecDirectW)")"):错误调用Python模块函数dbsqlanywhere . reverseengineer
错误:ProgrammingError("('42S02', "),"[42S02] [Sybase][ODBC Driver][adaptiveserveranywhere]表或视图Table 'SYSTAB' not found (-141) (SQLExecDirectW)")"):错误调用Python模块函数dbsqlanywhere . reverseengineer
失败的

如何解决这个问题?

这是因为SQL获取表名。查看db_sqlanywhere_re_grt.py:142,有:

SELECT st.table_name
FROM SYSTAB st LEFT JOIN SYSUSER su ON st.creator=su.user_id
WHERE su.user_name = '%s' AND st.table_type = 1

sql anywhere version <我猜你们有最新的版本。因此,您可以使用兼容的SQL编辑和更新该文件。请记住,在该文件中还有更多的SQL需要更新。同时,请在bugs.mysql.com上填写错误报告。>

相关内容

最新更新