从 MySQL 迁移到 PostgreSQL 的原因有很多,为了简洁起见,我们在此略过。我看到很多关于迁移表和数据的问题,遗憾的是,答案良莠不齐,有的草率敷衍,有的则极其复杂。每个数据库迁移都是独一无二的,问题也多种多样,从严重依赖供应商的功能到极其复杂的数据库模式,都需要关注每一个细节。
步骤 1
这或许显而易见,但第一步是访问原始“源”数据库。您需要拥有该数据库的完整管理员权限。如果您出于安全、管理或其他原因没有完整访问权限,则很可能无法获得所有所需数据。
我们将使用 DBeaver Enterprise 连接到源数据库。

我们需要选择一个 MySQL 数据库驱动程序。

配置连接

我们将移植世界数据库。
在本示例中,我们将移植 MySQL World 数据库。该数据集已在 MySQL 文档、培训和示例中使用了数十年。您可能在安装 MySQL 时也安装了它,它是一个很好的示例,供您自行实验。
步骤 2
您需要连接到“目标”数据库。同样,您需要拥有管理访问权限。
步骤 3
您需要选中所需的表格,然后使用“导出数据”功能。

选择所需的表格。

选择目标传输类型,在本例中为数据库。

我们使用的是 PG 17 实例。
提取和加载都有多种选项。在熟悉这些选项之前,请先使用默认设置。

提取方式有多种选择;请使用默认设置。

加载选项;同样,请使用默认值。
现在,您可以退出。但我们希望进行转换,所以请继续。

关键时刻到了!
表格及其数据现在位于 PostgreSQL 实例中。

现在我们已经将世界数据存储在 PostgreSQL 中了。
第四步
现在我们可以使用DBeaver来比较数据。


我们收集到所有数据了吗?

你可以并排比较差异。
但在这个例子中,没有任何差异。而这正是我们想要的!
第五步
现在你可以决定索引了。PostgreSQL 提供了丰富的索引选择,你可以慢慢探索。
记住,最难的部分已经为你完成了。如果你想继续使用 B+ 树索引,可以使用 MySQL 索引创建代码。
如果您觉得五个步骤太多,我们稍后会介绍“迁移/比较”选项,它可以减少步骤。但这篇文章旨在演示清晰、正交的步骤,因此我没有使用此选项,希望额外的步骤能够带来更清晰的说明。
写在最后
DBeaver是一款非常棒的数据库工具。当您需要在不同版本或供应商之间迁移数据时,它非常实用。您可以随时使用它来更改数据类型。此外,它还支持迁移和比较数据,让您倍感安心。顺便一提,您只需提出申请,即可获得任何版本的两周免费试用。
原文地址:https://davesmysqlstuff.blogspot.com/2025/11/migrating-from-mysql-to-postgresql-in.html
原文作者:Dave Stokes




