将MySql转换为PostgreSQL

8
我想从MySQL迁移到PostgreSQL,这不是一个实时网站,很快就要启动了,模式已经准备好在MySQL中,但考虑到业务模型,我希望有一个更好的可扩展数据库。为了将MySQL转换为PostgreSQL,我需要逐个表格手动操作还是有GUI工具(或脚本)可以自动转换表格/文件值?
我的应用程序是使用codeingiter PHP编写的。

1
我没有迁移到PostgreSQL的经验,所以不能确定,但在即将发布时更换数据库似乎不是一个好主意。 - Pekka
1
现在进行切换比等到我有了实时用户数据并可能遇到停机/问题后再进行切换更好。因此,最好现在进行切换。 - Markus
希望你有一个非常好的测试套件。MySQL比PostgreSQL更容易宽容/执行我可能意味着的操作(DWIPM)。 - mu is too short
目前全部都是手动测试。逐页查看,确保所有数据都被正确地记录在后端,并且没有任何问题。 - Markus
使用GROUP BY测试任何查询--PostgreSQL不支持MySQL的隐藏列“特性”。还有许多其他微妙的差异--更改数据库供应商是一个非常大的任务。 - OMG Ponies
3个回答

6
我用的唯一有效工具是Navicat Premium,你可以下载 Navicat 并免费使用 14 天,足够进行数据库迁移...
只需创建两个连接(一个源 mysql,另一个目标 postgresql),然后选择工具 -> 数据传输,就可以了!
我尝试过的其他工具: - 使用 mysqldump 转储为 postgresql 兼容格式 - 不起作用 - 使用 ansi sql 格式 - 不起作用 - 尝试 pgload - 不起作用 - 尝试使用 https://github.com/AnatolyUss/nmig Nmig 可以正确创建表格但数据丢失。

你救了我一命。谢谢!一切都非常简单和容易。 - Andy
谢谢!这是在Windows上唯一有效的方法。 - ramsey_lewis
1
2023年这个方法仍然有效,对我来说是最简单的。下载并安装Navicat Premium,使用14天的试用期非常简单...不需要信用卡,也不需要注册。只需下载和安装即可。 - undefined

2
  1. 我同意Pekka的观点:如果你计划尽快上线,最不希望做的事情就是切换数据库系统。
  2. 如果你幸运的话,能够从当前的数据库中导出符合标准的SQL语句,Postgres会理解它,并且几乎不需要额外的努力。可以将SQL导出来以重新创建数据库结构和数据表的内容。

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

1
看看这个:http://www.mysqlperformanceblog.com/2006/11/30/interesting-mysql-and-postgresql-benchmarks/ - user330315

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接