使用PGLoader把数据从MySQL迁移到PostgreSQL
muxinxy Lv1

使用PGLoader把数据从MySQL迁移到PostgreSQL

介绍

PGLoader: Migrate to PostgreSQL in a single command! 使用一行命令迁移到 PostgreSQL !

PGLoader官网

PGLoader官方源码

https://github.com/dimitri/pgloader

PGLoader官方文档

https://pgloader.readthedocs.io/en/latest/pgloader.html

使用方法

源码编译、二进制文件、Docker,本文使用Docker

前提

已安装Docker

下载镜像

以下方法二选一

Github Docker仓库下载镜像

1
docker pull ghcr.io/dimitri/pgloader:latest

国内代理下载镜像

1
2
3
docker pull ghcr.dockerproxy.com/dimitri/pgloader:latest
docker tag ghcr.dockerproxy.com/dimitri/pgloader:latest ghcr.io/dimitri/pgloader:latest
docker rmi ghcr.dockerproxy.com/dimitri/pgloader:latest

迁移数据

创建临时目录

方便挂载到Docker容器

1
2
mkdir /root/tmpdir
cd /root/tmpdir

编辑load文件

1
vim pgload.load

i​进入插入模式,输入以下内容,替换其中的用户名、密码、数据库名称

1
2
3
4
5
6
7
8
9
10
LOAD DATABASE
FROM mysql://username:password@localhost:3306/dasebase
INTO postgresql://username:password@localhost:5432/dasebase

WITH include drop, create tables, create indexes, workers = 8, concurrency = 1

CAST type datetime to timestamp drop default drop not null using zero-dates-to-null

ALTER SCHEMA 'taas_core' RENAME TO 'public'
;

Esc​退出编辑模式,输入:wq​后按回车保存退出

进行迁移

1
2
docker run --network=host -v /root/tmpdir:/tmp --rm -it ghcr.io/dimitri/pgloader:latest \
pgloader /tmp/pgload.load

参考内容

 评论
评论插件加载失败
正在加载评论插件
由 Hexo 驱动 & 主题 Keep
访客数 访问量