如何将数据从假设mysql数据库移动到postgres数据库?
场景:两个类似的应用程序。用户想要从一个应用程序切换到另一个应用程序。 但他在之前使用mysql数据库的应用程序中保留了一些数据信息。当他转换他的应用程序时,他必须将他的数据从旧应用程序移动到使用postgres的新应用程序。
两个数据库都有不同的结构,表和表关系,表的数量以及它们下面的列。
但是如何将日期从一个数据库移动到另一个数据库呢?
有没有工具可以做到这一点?如果是这样,任何人都可以建议这样的工具..
答案 0 :(得分:2)
可能不是您所需要的,但this page包含
“可下载的Magic drupal-mysql2pgsql.pl脚本”
并讨论了迁移数据的困难。
它可能不合适,因为它可能只迁移Drupal数据库(并且您没有说明涉及哪些应用程序)
您最好的选择可能是以简单的文本形式导出/备份您的MySQL数据,这些文本可以按摩成PostgreSQL格式并导入。这需要一些脚本/编辑。
当然,这就是为什么要求提供工具的原因。
答案 1 :(得分:1)
我会这样做:
(仅使用数据库工具)
SELECT
语句将原始MySQL数据库中的数据复制到新数据库(因为新表是我假设的新表的混合),或者可能是某些存储过程...... mysqldump
,它有一个生成postgres兼容脚本的选项:--compatible=postgres
和许多其他非常有趣的选项。(使用自定义应用程序+ ORM(例如:C#,NHibernate) - 实现的时间更长):
(使用已知工具):
很抱歉,但我不知道是否有可以执行此操作的工具!
答案 2 :(得分:1)
您所描述的问题是数据仓库世界中最常见的问题之一,您需要从应用程序数据库(通常是经典的关系数据模型)中获取数据,并在具有不同结构的数据仓库中进行整合和集中(大多数时间与尺寸数据模型)。这是ETL作业(Extract Transform Load)的作用。
您可以将它们作为SQL脚本,手动运行或自动运行。您需要建立的是转换逻辑,然后将其实现为SQL脚本。
有专门的ETL工具,但我不认为它们会为您的情况增加太多价值。
答案 3 :(得分:1)
我还建议使用ETL工具来完成这类工作。应用不同的功能将使您的迁移100%成功。我建议为商业用户使用Apatar(apatar.com)等开源工具,为技术用户使用Talend(talend.com)。
答案 4 :(得分:0)
这些场景有一整套工具。谷歌的“ETL”,也可能是您正在处理的数据库供应商名称,您可能会找到比您在合理的时间内评估的更多解决方案。
答案 5 :(得分:0)
我会建议与其他人相同的路径略有不同。使用ETL工具来做到这一点。大多数ETL工具都可以完成您刚才描述的工作。如果您不想花钱购买“ETL”工具,我的投票将转到Talend Open Source ETL工具。我已经习惯了,它非常强大。文档和示例可在http://www.talend.com中找到。