Florent Jardin:使用 pg_migrate 检查目录
内容提要
PostgreSQL Migrator 将于2026年9月发布首个稳定版。该工具通过检查Oracle目录视图,将数据库结构序列化为JSON文件(如Source.json),支持离线查询、转换和审计,无需每次重连源库。相比Ora2Pg,它提供更灵活的迁移准备,下一步计划支持过程代码转换。
延伸解读
离线目录:迁移准备的新方式
pg_migrate 将 Oracle 目录视图序列化为 JSON 文件(如 Source.json),支持离线查询、转换和审计,无需每次重连源库。这解决了 Ora2Pg 每次运行都需重新读取源目录的问题,为迁移准备提供了更灵活、可重复的工作流程。
与 Ora2Pg 的对比:持久化与临时性
Ora2Pg 将目录信息存储在内存哈希中,运行结束后不保留,每次迁移都需重新连接 Oracle 并读取目录。pg_migrate 则把目录持久化为 JSON 文件,可反复使用,并支持转换、审计和 Web 界面浏览,减少了重复劳动和对源库的依赖。
JSON 目录带来的新工作流
基于 Source.json,pg_migrate 支持将源模型转换为 Target.json,并可通过审计阶段为每个节点评分、标注转换陷阱。此外,单页 Web 界面让用户无需编写 jq 过滤器即可浏览源和目标模型,降低了使用门槛。
后续路线:过程代码转换
文章提到,pg_migrate 的下一个阶段将聚焦于过程代码转换,计划从今年秋季开始。目前工具已能处理表、列、键等结构对象的检查与转换,但存储过程、函数等过程代码的迁移尚未覆盖,这是未来需要关注的重点。
Q&A
PostgreSQL Migrator 是什么?它的首个稳定版什么时候发布的?
PostgreSQL Migrator 是一个用于评估和迁移数据库的工具,由 Florent Jardin 与同事 Étienne Bersac 和 Pierre-Louis Gonon 自 2024 年起开发。其首个稳定版于 2026 年 9 月 4 日发布。
pg_migrate 的离线目录功能有什么作用?
离线目录功能通过检查 Oracle 目录视图,将数据库结构序列化为 JSON 文件(如 Source.json),支持离线查询、转换和审计,无需每次重连源库。
pg_migrate 如何执行目录检查?
首先初始化一个空目录并检查远程 Oracle 数据库访问,然后运行 pg_migrate inspect 命令。该命令会连接远程数据库,读取目录信息并序列化为 JSON 文件,存储在隐藏的 .pg_migrate 目录中。
pg_migrate 与 Ora2Pg 相比有什么优势?
pg_migrate 将目录序列化为 JSON 文件,支持离线查询、转换和审计,无需每次重连源库;而 Ora2Pg 将目录存储在内存中,每次运行都需要重新读取源目录。pg_migrate 提供了更灵活的迁移准备。
pg_migrate 的离线目录支持哪些使用场景?
离线目录支持转换(将 Source.json 转换为 Target.json)、审计(遍历每个节点评分并标注转换陷阱)以及通过单页 Web 界面浏览源和目标模型,无需编写 jq 过滤器。
pg_migrate 的未来路线图是什么?
从 2026 年秋季开始,pg_migrate 将进入下一阶段:过程代码转换。团队计划继续完善工具,提供不依赖 LLM 代理或美国服务的替代方案。