【问题标题】:Error when migrating a database from Filemaker in MySQL Workbench在 MySQL Workbench 中从 Filemaker 迁移数据库时出错
【发布时间】:2015-04-02 05:30:49
【问题描述】:

我正在尝试使用 MySQL Workbench 应用程序将 Filemaker 数据库迁移到 MYSQL。在这里,我安装了一个 ODBC 驱动程序来访问 filemaker 数据库。在 MySQL Workbench Migration Wizard 中,我可以连接到源数据库和目标数据库,选择一个模式并运行检索表。下一步失败并给我以下错误:

Traceback (most recent call last):
File "C:\Program Files\MySQL\MySQL Workbench 6.2 CE\workbench\wizard_progress_page_widget.py", line 192, in thread_work
self.func()
File "C:\Program Files\MySQL\MySQL Workbench 6.2 CE\modules\migration_source_selection.py", line 456, in task_fetch_schemata
self.main.plan.migrationSource.doFetchSchemaNames(only_these_catalogs)
File "C:\Program Files\MySQL\MySQL Workbench 6.2 CE\modules\migration.py", line 241, in doFetchSchemaNames
catalog_names = self.getCatalogNames()
File "C:\Program Files\MySQL\MySQL Workbench 6.2 CE\modules\migration.py", line 205, in getCatalogNames
return self._rev_eng_module.getCatalogNames(self.connection)
SystemError: Error("('HY000', '[HY000] [FileMaker][FileMaker] FQL0002/(1:45): The table named "TABLES" does not exist. (8309) (SQLExecDirectW)')"): error calling Python module function DbSql92RE.getCatalogNames
ERROR: Retrieve schema list from source: Error("('HY000', '[HY000] [FileMaker][FileMaker] FQL0002/(1:45): The table named "TABLES" does not exist. (8309) (SQLExecDirectW)')"): error calling Python module function DbSql92RE.getCatalogNames
Failed

如何才能成功完成迁移?

【问题讨论】:

  • 此迁移是您只需要执行一次以获取数据,还是需要多次执行此过程? IE。迁移是您应用程序业务逻辑的一部分,还是只是您需要将数据从 FileMaker 获取到 mysql,但您可以?

标签: odbc datasource mysql-workbench database-migration filemaker


【解决方案1】:

虽然 MySQL Workbench 通过 ODBC 与任何源数据库一起工作,但可能会发生特定变体仍然会产生问题。 Filemaker 似乎就是其中之一。所以,现在你不能迁移这样的数据库。如果您愿意,您可以在 http://bugs.mysql.com 上创建功能请求以包括对 Filemaker 的支持。

【讨论】:

    【解决方案2】:

    查看 MySQL Workbench 结果,该软件似乎正在 FileMaker 数据字典中查找信息,这可能是一个挑战。

    我获取此信息的方式是通过剪贴板。 FileMaker Pro Advanced 将其作为私有数据类型放入剪贴板,可以读取该数据类型以提供有关表的信息。剪贴板信息采用 XML 格式,包括字段数量、名称、字段类型、自动递增序列号字段的下一个 SN 和字段计算公式等信息。在转换数据时,所有这些信息都会有所帮助。例如,您可以获取 Next SN 值,并在 MySQL 中构建表时将其用作 PK 列的下一个增量值。

    计算公式对于构建 PHP code 等效项或构建 SQL 视图很有价值。有时,出于性能原因,最好通过数据库中的 SQL 视图执行计算和汇总。

    我以前编写过 Perl 代码来将数据从 FileMaker 传输到 MySQL,但现在我使用 LiveCode。 LiveCode 构建的应用程序 (FmPro Migrator) 与 FileMaker 建立 ODBC 连接,并直接连接到 MySQL 以传输数据。

    您需要小心从 FileMaker 获取数据。如果您有太多计算,则 ODBC 连接可能会因大型数据集而超时。如果发生这种情况,可能需要在传输数据之前删除 FileMaker 中的未存储计算和汇总字段。

    如果您需要在 FileMaker 和 MySQL 之间定期传输数据,有一些工具可以执行这些任务: 360Works 镜像同步 LinearBlue 的 SyncDek

    【讨论】:

      猜你喜欢
      • 2011-10-26
      • 2013-11-12
      • 2013-06-17
      • 2013-05-12
      • 2015-10-28
      • 1970-01-01
      • 2019-10-14
      • 2012-10-12
      • 1970-01-01
      相关资源
      最近更新 更多