如何轻松地从MySQL迁移到PostgreSQL?

我想先将现有的MySQL数据库(大约40个表,400mb数据)迁移到Postgres,然后再进行扩展.我在网上搜索并尝试了一些迁移脚本(其中一些可以找到here).它们都不是无缝运行的-如果只是我必须手动修复的一些小故障,那不是问题,但是生成的转储看起来根本不是有效的Postgresql.

有没有人能在不使用一个完整工作日的情况下成功迁移生产表-有解决此问题的简便方法吗?

注意:我也会考虑商业产品(只要定价仍然可行).

最佳答案
尽管sql是标准,但如果没有每个服务器软件都实现扩展功能,它的功能还不够完善.从MysqL到Postgresql的转换并不简单,除非您的模式很简单.自动化的翻译脚本只会让您受益匪浅.

最好的方法是手动翻译模式,然后为数据本身编写自己的传输脚本.您还应该编写验证脚本,以确保架构和数据正确传递.

这不是解决方案.如果您的数据库足以迁移,那么花一点时间在自己身上也很重要.最后,与自动迁移脚本相比,您花费的时间至少要花费更多的时间来解决怪异和细微的混乱.但是,自己动手做,您就有机会利用MysqL中没有的Postgresql功能,并有机会进行第二次改进,从而做出各种改进.

咬住子弹并做.

相关文章

昨天的考试过程中,有个考点的服务器蓝屏重启后发现Mysql启动不了(5.6.45 x32版本,使用innoDB),重装后...
整数类型 标准 SQL 中支持 INTEGER 和 SMALLINT 这两种类型,MySQL 数据库除了支持这两种类型以外,还扩...
一条 SQL 查询语句结构如下: SELECT DISTINCT <select_list> FROM <left_table&...
数据备份 1. 备份数据库 使用 mysqldump 命令可以将数据库中的数据备份成一个文本文件,表的结构和数据...
概述 在实际工作中,在关系数据库(MySQL、PostgreSQL)的单表数据量上亿后,往往会出现查询和分析变慢...
概述 触发器是 MySQL 的数据库对象之一,不需要程序调用或手工启动,而是由事件来触发、激活,从而实现...