如何将数据从Firebird数据库迁移到Linux上的PostGreSQL

有没有好的工具来将现有的firebird数据库迁移到PostgreSQL for Linux系统?

我已经看过: FBexport可以用来作为插入语句转储数据,但它主要是写入从一个Firebird数据库导出/导入到另一个,而不是一个迁移工具。

还有: Firebird到PostgreSQL Win32工具 ,但它只适用于win32系统。

有没有什么好的工具可以做到这一点? 还是我应该自己推出?

当我需要将一些复杂的数据从MySQL数据库移动到PostgreSQL数据库时,我编写了一个连接到MySQL数据库的perl脚本,select了数据,进行了所需的任何转换(如tinyint(1)为boolean和autoincrement sequence等),并将其插入到PostgreSQL数据库中。 为了更简单的转换,我做了一个mysql_dump插入语句的文件作为您的FBexport将做,然后修复需要修复一个sed脚本。 这不是自动化和完美的,但它速度快,足够好。

看一下这个:
http://www.sqlmanager.net/en/products/postgresql/datapump

我从来没有用过,所以我不能说是否好。

从我在这里得到的回应中,我知道Firebird没有特定的迁移工具 – > Linux上的PostgreSQL。

我想我必须自己写这个。

这里的主要问题是优化这种迁移的性能。

我在postgreSQL文档的第14章中find了一个很好的资源 ,它解释了向PostgreSQL插入大量数据的最佳方式,如下所示:

  • 禁用自动提交。
  • 使用COPY而不是一系列的INSERT语句。
  • 删除索引(或者更重要的是,只在数据插入的末尾创build它们)。
  • 各种内存configuration调音。

您可以使用FullConverter,但我不认为任何商业工具将只需点击一下就可以完成。 你需要检查约束,索引和自动增量。

你也可以尝试编写你自己的bash / perl / python /任何脚本来完成这项工作。