0
votes

I'm trying to migrate a Filemaker database to MYSQL using the MySQL Workbench application. Here I installed an ODBC driver to access the filemaker database. In the MySQL Workbench Migration Wizard I can connect to the source and target databases, select a schema and run through retrieving tables. The next step fails and gives me the following error:

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

What can I do to successfully finish the migration?

2
Is this migration something you're doing only once to get the data in or is this a process that you're needing to do multiple times? I.e. is the migration a part of your app's business logic or is this just you needing to get the data from FileMaker to mysql however you can?Chris Schmitz

2 Answers

1
votes

While MySQL Workbench works with any source database via ODBC it can happen that specific variants still make problems. Filemaker is one of them, it seems. So, for now you cannot migrate such a db. If you want you can create a feature request on http://bugs.mysql.com to include support for Filemaker.

0
votes

Looking at the MySQL Workbench results, it appears that the software is looking for info in the FileMaker data dictionary, and this can be a challenge to obtain.

The way I obtain this info, is via the Clipboard. FileMaker Pro Advanced puts this into onto the clipboard as a private data type, which can be read in order to provide the info about the tables. The clipboard info is in an XML format, and includes info on the number of fields, names, field types, Next SN for auto-increment Serial Number fields and field calculation formulas. All of this info can be helpful when converting the data. For instance, you can get the Next SN value, and use this as the next increment value for your PK column when you build the table in MySQL.

The calculation formulas are valuable for building PHP code equivalents or building SQL views. Sometimes, it is much better to perform calculations and summaries via a SQL view in the database, for performance reasons.

I have previously written Perl code to transfer data from FileMaker to MySQL, but now I use LiveCode. The LiveCode built app (FmPro Migrator) makes an ODBC connection to FileMaker, and a direct connection to MySQL to transfer the data.

You need to be careful getting the data from FileMaker. If you have too many calculations, the ODBC connection can time out for large data sets. It may be necessary to delete Unstored Calculation and Summary fields in FileMaker before transferring the data if this occurs.

If you need to transfer data on a regular basis between FileMaker and MySQL, there are tools which can perform these tasks: MirrorSync by 360Works SyncDek by LinearBlue