当前位置: 首页 > news >正文

windows平台,用pgloader转换mysql到postgresql

以下操作皆在windows平台

pgloader 的官方镜像在 Docker Hub 上维护:

docker pull dimitri/pgloader:latest

💡 dimitri 就是 pgloader 的作者 Dimitri Fontaine。
如果你想使用固定版本,可以指定 tag,例如:

docker pull dimitri/pgloader:v3.6.7

安装完毕后点击action箭头不会执行,属于正常现象

之后不用.load脚本文件,而是用下方命令直接搞定(无需脚本文件)

docker run --rm  dimitri/pgloader:latest  pgloader  mysql://root:11111@host.docker.internal:3306/wp1019 postgresql://postgres:11111@host.docker.internal:5432/catpostgre

💡 说明

部分含义
--rm运行结束后自动删除容器
dimitri/pgloader:latest使用官方 pgloader 镜像
pgloader容器内执行的命令
mysql://root:11111@host.docker.internal:3306/wp1019你的 MySQL 连接串
postgresql://postgres:11111@host.docker.internal:5432/catpostgre你的 PostgreSQL 连接串
host.docker.internal让容器能访问宿主机的数据库(macOS 专用)

经过实测,host.docker.internal虽然写着mac专用,但win10顺利执行,一般可以换成localhost

.load版本

一、「迁移前自动删除旧表并重建 schema」 版本

适合在多次重复导入或测试迁移时使用。

mysql_to_postgres.load 文件内容(可直接保存使用):

 LOAD DATABASEFROM mysql://root:11111@host.docker.internal:3306/hghghgINTO postgresql://postgres:11111@host.docker.internal:5432/wp1020WITH drop schema, create tables, create indexes, reset sequencesSET work_mem to '64MB',maintenance_work_mem to '512MB',search_path to 'public'CAST type datetime to timestamptz drop default drop not null using zero-dates-to-null,type date drop not null using zero-dates-to-null
;

上述代码,hghghg是mysql的数据库名,wp1020是postgresql的数据库名

配置说明

部分说明
drop schema在导入前删除现有的 PostgreSQL schema(相当于清空数据库结构)
create tables自动根据 MySQL 表创建新表
create indexes自动创建索引
reset sequences重置自增序列起点
CAST处理 MySQL → PostgreSQL 类型差异(特别是日期/时间)

⚠️ 注意

  • 这会清空 PostgreSQL 数据库的 public schema 中的所有表!
    仅在你确定不需要保留旧数据时使用。


🚀 执行命令(同前)

docker run --rm   -v D:\mm\mysql_to_postgres.load:/load.load   dimitri/pgloader:latest   pgloader /load.load

之前用${pwd}报错,后来发现windows环境下,还是用D:\xxxx路径的形式,写完整最安全了。

迁移效果

  1. PostgreSQL 中旧表和数据被清空;

  2. 自动重建 schema 与表结构;

  3. 从 MySQL 拉取全部数据导入;

  4. 输出详细迁移报告。

http://www.dtcms.com/a/502975.html

相关文章:

  • Linux驱动第一期1-10-驱动基础总结
  • 我的WordPress网站梅林固件做网站
  • 分库分表:基础介绍
  • 使用css `focus-visible` 改善用户体验
  • AI人工智能-深度学习的基本原理-第二周(小白)
  • 【2070】数字对调
  • 【AI智能体】Coze 提取对标账号短视频生成视频文案实战详解
  • IOT项目——ESP系列
  • 【成长纪实】Dart 与 ArkTS 函数与类的对比学习:从 Flutter 到 HarmonyOS
  • 基于 JETSON+FPGA+GMSL+AI 车载视频采集与存储系统设计(二)系统测试
  • Flutter Event Loop
  • LeetCode 1287.有序数组中出现次数超过25%的元素
  • 递归-50.Pow(x,n)-力扣(LeetCode)
  • Flutter 并发编程全解:从零掌握 Isolate
  • 跨网络互联技术(①Singbox Core-Flutter-Android)
  • 移动端网站的重要性做一款推荐类的网站
  • 用div做网站中间部分做网站是干啥的
  • 【思维导图SimpleMind Pro】SimpleMind Pro——轻量级思维导图软件完全指南:轻量专业,让思维高效可视化
  • jlink烧入软件的使用
  • 03-流程控制语句-教程
  • 【mqtt参数上云和小程序开发】【第5期】hcsr04超声波测距模块调试完成
  • 【STM32笔记】:P03 ISP 一键下载电路详解
  • 江苏省网站建设哪家好php做的购物网站
  • 常见的位运算的总结
  • CSRF(跨站请求伪造)攻击详解:原理、途径与防范
  • 【C++】使用双指针算法习题
  • 全能型 AI 模型新标杆 Qwen2.5-Omni
  • 建设银行佛山分行网站wordpress插件 评分
  • 大数据计算引擎-从源码看Spark AQE对于倾斜的处理
  • 前端基础知识---Ajax