2009-10-15 58 views
2

如何将数据从假设MySQL数据库移动到postgres数据库?将数据从一个数据库移动到其他数据结构

场景:两个类似的应用程序。用户想要从一个应用程序切换到另一个应用程序。 但是他在之前的使用mysql数据库的应用中保留了某些数据信息。当他切换应用时,他必须将他的数据从旧应用程序移动到使用postgres的新应用程序。

这两个数据库都有不同的结构和表格和表格的关系,表格的数量以及它们下面的列。

但如何将日期从一个数据库移动到其他?

有没有什么工具可以做到这一点?如果是这样任何人都可以提出这样的工具..

回答

2

它可能不是您所需要的,但this page包括

“下载魔术drupal-mysql2pgsql.pl脚本”

和困难的讨论迁移数据。

这可能是不适当的,因为它可能只迁移Drupal的数据库(你没有说哪些应用程序都参与)

你最好的选择可能是简单的文本形式,可以导出/备份您的MySQL数据按摩到PostgreSQL格式并导入。这将需要一些脚本/编辑。

这当然是你为什么要求提供工具的原因。

1

我会做这样的:

(仅使用数据库工具)

  • 在MySQL中创建一个新的数据库,并与空表填充它,关系完全一样,我需要迁移到(Postgres的)从原来的MySQL数据库使用SELECT语句(如新表是旧1瓦特我想的混合),也可以是一些存储过程的新
  • 复制数据...
  • 然后用倾销工具,无线我会为我的新数据库生成sql脚本以在别处创建。对于MySQL的工具是mysqldump,它有一个选项可以生成postgres兼容脚本:--compatible=postgres和许多其他非常有趣的选项。
  • 在我的新数据库上运行这些脚本
  • 检查不一致性,正确...

(使用定制的应用程序+ ORM(例如:C#,NHibernate的) - 更多更长的时间来实现):

  • 我的新DBMS创建我的新的数据库
  • 创建一个OR映射原始数据库
  • 用我的ORM
  • 创建的OR映射为新数据库
  • 进口原装数据变换我的数据,以适应我的新的数据库&我的ORM

插入(使用已知的工具):

很抱歉,但我不知道是否有一个工具,可以做到这一点!

0

有这些场景的整个工具的工具。 Google针对“ETL”,可能还包括您正在处理的数据库供应商名称,您可能会发现比您可以在合理的时间内评估更多的解决方案。

1

您所描述的问题是数据仓库世界中最常见的问题之一,您需要从应用程序数据库(通常是经典的关系数据模型)获取数据,并在具有不同结构的数据仓库中进行整合和集中具有维数据模型的时间)。 ETL作业(Extract Transform Load)所做的工作。

您可以将它们作为SQL脚本,手工运行或自动运行。你需要建立的是转换逻辑,然后将其作为SQL脚本来实现。

有专门的ETL工具,但我认为他们不会为您的案例增加太多的价值。

0

我会建议与其他人略有不同的路径。使用ETL工具来做到这一点。大多数ETL工具都可以完成刚刚描述的工作。如果您不想花任何钱购买“ETL”工具,我的投票将转到Talend开源ETL工具。我用过它,它非常强大。文档和示例可在http://www.talend.com中获得。

1

我还建议使用ETL工具来处理这类工作。应用不同的功能将使您的迁移100%成功。我建议为商业用户使用开源工具,如Apatar(apatar.com),为技术用户使用Talend(talend.com)。

相关问题