将 MySql 转换为 PostgreSQL

Posted

技术标签:

【中文标题】将 MySql 转换为 PostgreSQL【英文标题】:Convert MySql to PostgreSQL 【发布时间】:2010-11-27 01:23:14 【问题描述】:

我想从 mysql 迁移到 PostgreSQL,这还不是一个实时站点,即将推出,并且架构在 MySQL 中已经准备就绪,但考虑到业务模型,我想要一个更好的可扩展数据库,因此要将 MySQL 转换为PostgreSQL,我是否需要逐个表手动完成,或者是否有我可以使用的 GUI 工具(或脚本)来自动转换表/文件值?

我的应用是用 php 编写的。

【问题讨论】:

我没有迁移到 PostgreSQL 的经验,所以我不能肯定,但在即将启动时切换数据库听起来有点糟糕。 是的,但最好在我上线之前立即进行切换,而不是在我拥有实时用户数据后进行切换,并且可能会遇到停机时间/问题。 我希望你有一个非常好的测试套件。 MySQL 往往比 PostgreSQL 更宽容/DWIPM(做我可能的意思)。 目前都是手动测试。逐页浏览,查看所有数据都正确记录在后端,没有任何问题。 使用 GROUP BY 测试任何查询 -- PostgreSQL 不支持 MySQL's hidden columns "feature"。还有许多其他细微的差异——更换数据库供应商是一项非常艰巨的任务。 【参考方案1】:

唯一为我做的工作是Navicat Premium,你可以获取 Navicat 并免费使用 14 天,这足以进行 DB 迁移...

只需创建2个连接(一个源mysql,另一个目标postgresql),然后选择Tools -> Data Transfer,就可以了!

我尝试过的其他工具: 使用 mysqldump 转储为与 postgresql 兼容 - 不起作用,因为 ansi sql - 不起作用,尝试 pgload - 不起作用,尝试使用 https://github.com/AnatolyUss/nmig Nmig 正确创建表,但数据丢失。

【讨论】:

你拯救了这一天。谢谢!一切都非常简单易行 谢谢!这是在 Windows 上唯一对我有用的东西【参考方案2】:
    我同意 Pekka 的观点:如果您即将推出,那么您最不想做的就是切换数据库系统。 如果幸运并且能够从当前数据库中导出符合要求的 SQL,Postgres 会理解它,并且几乎不需要额外的工作。可以导出 SQL 以重新创建数据库的结构及其表的内容。

【讨论】:

【参考方案3】:

MySQL 是一个高度可扩展的数据库,被互联网上一些最大和最活跃的网站所使用。我会有一些非常好的测试基准,表明 Postgres 在切换之前会给你带来显着的优势。

【讨论】:

看看这个:mysqlperformanceblog.com/2006/11/30/…

以上是关于将 MySql 转换为 PostgreSQL的主要内容,如果未能解决你的问题,请参考以下文章

将 MYSQL 转换为 Codeigniter

将 MySql 转换为 PostgreSQL

使用php将大量mysql记录转换为json

将 mySQL 日期转换为 Javascript 日期

将 Access SQL 转换为 MySQL

将字符串转换为日期mysql