3

如何将数据从假设 mysql 数据库移动到 postgres 数据库?

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

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

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

有什么工具可以做到这一点吗?如果是这样,任何人都可以建议这样的工具..

4

6 回答 6

2

它可能不是您需要的,但此页面包含

“可下载 Magic drupal-mysql2pgsql.pl 脚本”

并讨论迁移数据的困难。

这可能不合适,因为它可能只迁移 Drupal 数据库(而且您没有说涉及哪些应用程序)

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

当然,这就是为什么您要求为这项工作提供工具的原因。

于 2009-10-15T09:35:10.410 回答
1

您所描述的问题是数据仓库世界中最常见的问题之一,您需要从应用程序数据库(通常是经典的关系数据模型)中获取数据,并在具有不同结构的数据仓库中进行整合和集中(大部分时间与维度数据模型)。这就是 ETL 作业(提取转换负载)所做的。

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

有专门的 ETL 工具,但我认为它们不会在您的情况下增加太多价值。

于 2009-10-15T09:50:09.990 回答
1

我会这样做:

(仅使用数据库工具)

  • 在 MySQL 中创建一个新数据库并用空表填充它,关系与我需要迁移到的关系完全一样(postgres)
  • 使用SELECT语句将数据从原始 MySQL 数据库复制到新数据库(因为我想新表是旧表的混合),或者可能是一些存储过程......
  • 然后使用转储工具,该工具将为我的新数据库生成 sql 脚本以在其他地方创建。对于 MySQL,该工具是mysqldump,它具有生成 postgres 兼容脚本的选项:--compatible=postgres以及许多其他非常有趣的选项。
  • 在我的新数据库上运行这些脚本
  • 检查不一致,正确...

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

  • 在我的新 DBMS 上创建我的新数据库
  • 为原始数据库创建 OR 映射
  • 为新数据库创建 OR 映射
  • 使用我的 ORM 导入原始数据
  • 转换我的数据以适应我的新数据库并使用我的 ORM 插入它

(使用已知工具):

对不起,但我不知道是否有工具可以做到这一点!

于 2009-10-15T09:38:03.983 回答
1

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

于 2009-10-30T11:00:35.033 回答
0

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

于 2009-10-21T14:11:30.230 回答
0

对于这些场景,有一整个行业的工具。谷歌搜索“ETL”,可能还有您正在处理的数据库供应商名称,您可能会找到比您在合理时间内评估的更多的解决方案。

于 2009-10-15T09:46:02.883 回答