【问题标题】:Convert MySql to PostgreSQL将 MySql 转换为 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"。还有许多其他细微的差异——更换数据库供应商是一项非常艰巨的任务。

标签: mysql database postgresql


【解决方案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】:
  1. 我同意 Pekka 的观点:如果您即将推出,那么您最不想做的就是切换数据库系统。
  2. 如果幸运并且能够从当前数据库中导出符合要求的 SQL,Postgres 会理解它,并且几乎不需要额外的工作。可以导出 SQL 以重新创建数据库的结构及其表的内容。

【讨论】:

    【解决方案3】:

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

    【讨论】:

    猜你喜欢
    • 2021-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-11
    • 2021-10-30
    相关资源
    最近更新 更多