数据迁移丨借助 pg2mysql 从 PostgreSQL 到 GreatSQL

打印 上一主题 下一主题

主题 1021|帖子 1021|积分 3063

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
数据迁移丨借助 pg2mysql 从 PostgreSQL 到 GreatSQL

上篇《数据迁移丨借助 AI 从 PostgreSQL 到 GreatSQL》介绍了如何使用 AI + pg_dump/COPY 的方式将 PostgreSQL 迁移到 GreatSQL 中,各位同砚看过之后,会发现两款数据库还是有一些差异,比方对象层次结构、数据范例等方面,假如接纳人工来迁移,还是会比较麻烦,所以本篇将介绍,如何使用开源工具 pg2mysql 工具从 PostgreSQL 到 GreatSQL。
pg2mysql 简介

pg2mysql 工具是一款开源工具,由 VMware 公司提供,重要用于将数据从 PostgreSQL 迁移至 MySQL 或 GreatSQL。其核心价值在于数据兼容性查抄与迁移功能。在实际迁移使用之前,该工具会仔细查抄 MySQL/GreatSQL 的表结构与 PostgreSQL 中相应表结构是否兼容。若检测到诸如字段长度不足之类的埋伏问题,它会向用户发出提示,以便用户进行修正。
pg2mysql 工具重要是用 Go 语言编写的,遵循 Apache - 2.0 许可证。不外必要注意的是,目前这个项目已经归档,不再进行定期更新了。但对于有能力的朋友而言,可以基于该项目进行进一步的开发
pg2mysql 安装

方式一:下载程序

以上链接可以直接下载 pg2mysql 最新 v0.0.6 版本,授权后可直接运行:
  1. $ chomd 755 pg2mysql_linux
  2. $ ./pg2mysql_linux -h
  3. 2024/10/28 14:52:40 error: Usage:
  4.   pg2mysql_linux [OPTIONS] <migrate | validate | verify>
  5. Application Options:
  6.   -c, --config= Path to config file
  7. Help Options:
  8.   -h, --help    Show this help message
  9. Available commands:
  10.   migrate   Migrate data from PostgreSQL to MySQL
  11.   validate  Validate that the data in PostgreSQL can be migrated to MySQL
  12.   verify    Verify migrated data matches
复制代码
方式二:源码安装

源码安装方式必要有 GO 语言环境:
  1. $ go version
  2. go version go1.22.5 linux/amd64
复制代码
版本没有强要求,go1.22.5 版本可以正常编译运行。
新建一个文件夹,用于存放 pg2mysql 工具源码:
  1. $ mkdir /usr/local/pg2mysql
  2. $ cd /usr/local/pg2mysql
复制代码
拉取 pg2mysql 工具源码:
  1. $ git clone https://github.com/pivotal-cf/pg2mysql.git
  2. $ cd pg2mysql/
复制代码
假如接纳手册中的方法go get github.com/pivotal-cf/pg2mysql/cmd/pg2mysql
会报错:
go: go.mod file not found in current directory or any parent directory.
'go get' is no longer supported outside a module.
To build and install a command, use 'go install' with a version,
like 'go install example.com/cmd@latest'
For more information, see https://golang.org/doc/go-get-install-deprecation
or run 'go help get' or 'go help install'.
是由于目前新版本 Go 语言在模块(module)相关的使用方式上有了变革,直接先拉取源码在使用。
进入 pg2mysql 源码文件夹后,可以看到以下文件:
  1. $ ls
  2. LICENSE    config.go    migrator_test.go        postgres.go        vendor
  3. Makefile   db.go        mysql.go                postgresrunner     verifier.go
  4. README.md  go.mod       mysqlrunner             testdata           verifier_test.go
  5. cmd        go.sum       pg2mysql_suite_test.go  validator.go       watcher.go
  6. commands   migrator.go  pg2mysqlfakes           validator_test.go
复制代码
接下来构建项目:
  1. $ go mod init pg2mysql
  2. $ go mod tidy
复制代码
构建完成后,可以编译该工具:
  1. $ go build -o pg2mysql cmd/pg2mysql/main.go
复制代码
在文件夹下就会发现 main 可执行文件,接着授权即可运行:
  1. # 授权
  2. $ chmod 755 pg2mysql
  3. # 授权完成即可运行
  4. $ ./pg2mysql -h
  5. 2024/10/30 13:58:20 error: Usage:
  6.   pg2mysql [OPTIONS] <migrate | validate | verify>
  7. Application Options:
  8.   -c, --config= Path to config file
  9. Help Options:
  10.   -h, --help    Show this help message
  11. Available commands:
  12.   migrate   Migrate data from PostgreSQL to MySQL
  13.   validate  Validate that the data in PostgreSQL can be migrated to MySQL
  14.   verify    Verify migrated data matches
复制代码
这里有 error 不要紧,看源码可知 log.Fatalf("error: %s", err) 会带有一个error,并不是无法使用。
pg2mysql 使用

创建配置

首先必要创建配置,创建 PostgreSQL 和 MySQL/GreatSQL 的链接信息:
[code]$ cat > config.yml
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

慢吞云雾缓吐愁

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表