我正在为我的Web应用程序考虑使用MySQL进行Postgresql迁移,但是我很难将现有的MySQL数据库转换为Postgresql。
我试过了:
以上程序中的任何一个都可以很好地转换我的数据库!
我看到了一些用于将mysql转换为postgresql的Perl和Python脚本,但是我无法弄清楚如何使用它们....(我安装了ActivePerl并且不明白我接下来应该做什么那个剧本!)
我一直使用自动增量字段(作为主键),这些只是被忽略...我知道Postgresql以另一种方式(带序列)自动增量,但它不能那么难对于MIGRATION软件来实现它,或者是它?
有没有人有更好的运气转换MySQL数据库自动增量作为主键?
答案 0 :(得分:2)
我知道这可能不是您正在寻找的答案,但是:我不相信“自动”迁移工具。
获取创建数据库模式的现有SQL脚本,搜索并替换必要的数据类型(自动编号映射到serial
,自动为您执行所有序列处理),删除所有“engine = “然后对Postgres运行新脚本。
将旧数据库转储为平面文件并将其导入目标。
我已经使用适用于MySQL的示例数据库多次完成了这项工作,但实际上并不需要那么长时间。
可能只要尝试所有不同的“自动化”工具。
答案 1 :(得分:1)
为什么不使用ETL工具?你不必担心转储或类似的东西。 我已经迁移到PostgresSQL和MySQL,并且对自动增量字段没有任何问题。
您只需知道连接凭据即可。我个人使用Pentaho(它的开源)。
下载Pentaho ETL解压缩并运行Pentaho(使用.bat文件spoon.bat)
创建一个新职位:
为源数据库创建数据库连接(PostgreSQL) - 使用菜单:工具→向导→创建数据库连接(F3)为目标数据库(Mysql)创建数据库连接 - 使用上述技术。
运行向导:工具→向导→复制表(Ctrl-F10)。
选择源(左对话框面板)和目标(左对话框面板)。单击“完成”。
将生成作业 - 运行作业。
如果您需要任何帮助,请与我们联系。
答案 2 :(得分:0)
即使你熟悉所有“PostgreSQL问题”,每一步都要花费很多时间,特别是当你的数据库“很大”时。 尝试一些other scripts/tools。
答案 3 :(得分:0)
我知道这是一个老问题,但我遇到了从MySQL迁移到Postgres的同样问题。尝试了几个我能找到的最好的迁移工具,它将尽可能干净地迁移你的数据库结构,是Pgloader https://github.com/dimitri/pgloader/它会照顾将自动增量更改为Postgres序列没问题,而且速度超快。