pgloader 可重复加载迁移
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md ,安装 @user_3c6cb52e/migrate-mysql-sqlite-or-csv-data-into-postgresql-with-repeatable-load-files-before-cutover-with-pgloader
技能介绍
迁移前的核心痛点
当从MySQL、SQLite或CSV迁移数据到PostgreSQL时,临时脚本会引入隐藏风险:例如,MySQL的VARCHAR到PostgreSQL的类型映射不明确,可能导致中文乱码;脚本只能运行一次,难以在切换前重复验证结果;一旦加载失败,无法追溯是类型转换的哪一步出了问题,为最终切换埋下隐患。
技能核心能力与执行逻辑
该技能通过pgloader的声明式加载文件,将迁移逻辑从“临时脚本”转变为“可重复配置”,核心能力包括:
- 内置类型自动转换:覆盖MySQL、SQLite与PostgreSQL之间的常见类型映射,减少手动调整
TYPE映射的工作量 - 预检查机制:通过
--dry-run参数仅验证源与目标数据库连接、配置合法性,不实际加载数据 - 可重复加载:固定源路径、目标表、转换规则后,多次执行可输出一致结果,便于切换前的压力测试或数据校验
执行逻辑分为三步:
- 编写声明式加载文件,定义源(如MySQL库名、SQLite文件路径)、目标PostgreSQL连接信息、类型映射规则
- 执行
--dry-run预检查,排查连接失败、配置语法错误 - 确认无误后正式加载,可重复运行该文件完成多次迁移
适用边界与注意点
- 需提前准备pgloader运行环境,并拥有源系统与PostgreSQL的访问权限
- 对于极端自定义类型(如PostgreSQL自定义枚举、依赖MySQL存储过程的迁移),仍需手动补充映射规则
- 不适用于实时数据同步场景,仅面向切换前的批量、可重复迁移需求
使用场景
- 数据库运维团队要把旧MySQL库切换到PostgreSQL,需要在切换前重复跑迁移以验证结果一致
- 后端开发工程师要把本地SQLite应用数据导入PostgreSQL测试环境,验证表结构与数据完整性
- 数据工程师需要将历史CSV数据批量装载进PostgreSQL,并要求加载配置可重复使用
- 运维人员在切换前用预检查参数验证源库与目标库连接,避免正式加载时才发现配置错误
适合人员
- 数据库运维工程师:需要在切换前反复验证迁移流程、降低一次性导入风险的技术人员
- 后端开发工程师:需要把应用数据从MySQL或SQLite迁移到PostgreSQL并保持配置可复用的开发者
- 数据工程师:负责批量装载历史CSV数据、需要可追溯加载过程的专业人员
- 技术负责人:负责评估迁移方案可靠性、需要在切换前完成多次演练的决策者