← 中文资源

简体中文版本

克隆 PostgreSQL 结构而不复制数据

用 pg_dump 的 schema-only 输出搭建与生产结构一致的预发库,用于安全的查询计划与迁移测试。

阅读英文原文

目标

需要在接近真实的库结构上测试索引与迁移改动,又不想复制生产数据。本配方用 pg_dump 只导出结构(表、索引、约束,不含数据),加载进全新库,从而得到一个可安全实验的克隆;同时提醒数据量为零会导致基数失真,需要自行填充代表性数据。

步骤要点

  1. 用 pg_dump –schema-only 导出结构且不含所有权与权限。
  2. 在全新数据库导入结构并列出表验证。
  3. 安装同名扩展以避免 DDL 引用类型失败。
  4. 填充代表性数据以修正基数失真。
pg_dump --schema-only --no-owner --no-privileges \
  -d production -f schema.sql

排错提示

  • 缺少数据会使基数与生产不同,需自行造数。
  • 扩展缺失会导致加载失败。
  • dump 不含角色与授权。

适用边界

  • 不复制数据,基数不真实。
  • 序列不会推进到生产值。