我已经转储了PostgreSQL数据库,当我们将项目从Heroku迁移到Amazon EC2时,我需要它到MySQL。
很长一段时间我正在做类似原始转储和类似的事情。 SQL查询,所以我想请求您帮助如何尽可能顺利地进行此操作。
我转储了PostgreSQL数据库。当我打开文件时,有一些PostgreSQL命令,表结构和属于这些表的数据。另一方面,我在EC2上有一个带有创建表的MySQL数据库(与PostgreSQL转储中的表相同 - 但所有MySQL表都是空的)。我的目标是使用PostgreSQL表中的数据填充MySQL表。
怎么做?
答案 0 :(得分:5)
截至6天前,亚马逊开始提供a hosted PostgreSQL service作为其关系数据库服务的一部分。我会认真考虑直接导入PostgreSQL并完全跳过MySQL。改变到不同的DBMS总是比它的价值更痛苦。
您可以使用psql运行转储,例如:psql -f <backup_filename> <target_db>
。有关详情,请参阅Amazon's docs
如果你真的准备迁移到MySQL,你可以尝试一个简单的工具,如openDBcopy或更全面(和复杂)的工具,如Talend Studio。
答案 1 :(得分:0)
如果您有pg_dump
创建的文本文件,那么在此文件中,您可以将源数据库中的数据视为COPY
命令或一系列INSERT
命令。两者都应该易于导入到任何其他数据库。也许你将不得不改变日期的字符串表示。 COPY
格式只是CSV,为此您必须编写导入程序,例如Jython:可以与JDBC驱动程序一起使用的Python语言。使用Jython,您可以使用具有正确PreparedStatement
的JDBC INSERT
轻松解析CSV数据并将其导入目标数据库。
如果您同时连接到两个数据库,则可以使用各种工具“抽取”目标数据库。作为Jython粉丝,我只使用JDBC代码如下:
insert_stmt.setObject(i, rs_in.getObject(i))
其中insert_stmt
为prepareStatement()
且INSERT...
且rs_in
的记录集为executeQuery()