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

3
我想在现有的MySQL数据库(大约40个表,400MB数据)变得更大之前将其迁移到Postgres。我在网上搜索并尝试了一些迁移脚本(其中一些可以在这里找到)。但是没有一个能够无缝地工作-如果只有一些小问题需要手动修复,那就不是问题,但是生成的转储根本不像有效的PostgreSQL。

有人成功地迁移了生产表而没有使用整个工作日吗?是否存在简单的解决方案来解决这个问题?

注意:我也会考虑商业产品(只要定价仍然合理)。


你尝试过使用 "taps" 这个 gem 吗? - Rails beginner
1个回答

3
尽管SQL是一个标准,但每个服务器软件实现扩展都不够全面。除非您的模式很简单,否则从MySQL到PostgreSQL的转换并不简单。自动翻译脚本只能帮您解决一部分问题。
最好的方法是手动翻译模式,然后编写自己的传输脚本以传输数据。您还应编写验证脚本以确保模式和数据正确传输。
这不是推卸责任的答案。如果您的数据库重要到需要迁移,那么花些时间自己处理也是值得的。最终,您将花费至少与自己迁移数据所需的时间相同的时间来解决怪癖和微妙的混乱。但是,通过自己完成,您有机会利用在MySQL中不存在的PostgreSQL功能,并且有机会进行只有第二次做某事时才能做出的改进。
勇敢地去做吧。

1
作为程序员,我们自然希望自动化一切,但事实是有些事情需要手动完成。当验证时间 > 手动完成所需时间时,请手动完成。 - j_random_hacker
有时候你需要别人提醒你应该手动完成它。谢谢。 - Marcel Jackwerth

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