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