当前位置: 首页>>技术教程>>正文


如何将MySQL数据库转换为PostgreSQL?

webfans 技术教程 , , , 去评论

问题描述

有没有用于将MySQL数据库转换为PostgreSQL的命令行工具?我还想知道是否有办法使用普通的mysqldump命令转换数据库。

最佳解决方法

你有没有尝试过:

mysqldump --compatible=postgresql dbname > export.sql

然后这样做以逃避报价

sed "s/\\\'/\'\'/g" export.sql > export1.sql

可能需要更多的按摩,所以更密切地看看mysqldump doco。

次佳解决方法

以下是一些非常有用的开源工具:FromMySqlToPostgreSql是一个feature-reach工具,非常易于使用。它映射data-types,完全像在MySQL数据库中一样迁移约束,索引,PK和FK。它使用PostgreSQL COPY,因此数据传输速度非常快。用PHP编写的FromMySqlToPostgreSql(> = 5.4)。

pgloader是PostgreSQL的数据加载工具,使用COPY命令。它的主要优势在于仅仅使用

COPY
\copy

和使用外部数据包装器,是它的事务行为,其中pgloader将保留一个单独的被拒绝数据文件,但继续尝试复制数据库中的好数据。默认的PostgreSQL行为是事务性的,这意味着输入数据(文件或远程数据库)中的任何错误行都将停止表的整个批量加载。 pgloader还实现了数据重新格式化,这是MySQL datestamps 0000-00-00和0000-00-00 00:00:00转换为PostgreSQL的典型例子。

NULL

价值(因为我们的日历从未有过零年)。

pgloader用LISP编写并作为源代码分发,所以你需要在使用前编译它。

希望它能帮到你……

第三种解决方法

实际上有一个易于使用的免费迁移工具,由EnterpriseDB自己开发。它可以通过StackBuilder安装:Migration Toolkit

第四种方法

我最近使用来自DBConvert的non-free工具将访问数据库转换为postgres,并且发现与我浪费的时间可靠地免费获得它相比,它非常值钱。出售类似的工具for MySQLpostgres,我没有使用过,但可能值得考虑,除非你只对命令行工具感兴趣。

万一你想知道我不以任何方式与他们有任何联系:-)

第五种方法

例如,您可以使用EnterpriseDB迁移向导。

它可以有效地迁移OracleDB。但对于Mysql,它有一些限制,例如,它不支持视图,触发器,存储过程。

有关更多信息,请参阅EDB Migration Toolkit。不确定,但是可以迁移mysql-> oracle-> postgresql保存存储过程(如果它们存在)。

Grep this:Database and SQL Migration Tools

参考资料

本文由朵颐IT整理自网络, 文章地址: https://duoyit.com/article/3042.html,转载请务必附带本地址声明。