postgres数据迁移主要用到两个自带的工具pg_dump
和pg_restore
:
-
pg_dump
将数据从数据库中导出来,生成文件 -
pg_restore
从文件中导入数据到数据库
例如:现在要将db1中shecma1的所有表数据导入到db2中schema2,过程如下:
第一步,导出数据
pg_dump --format custom --file "my_backup" --schema "schema1" "db1"
第二步,导入数据
pg_restore --dbname "db2" "my_backup"
此时,数据已经导入到db2中的schema1下,最后重命名schema1即可。
第三步,重命名schema
alter schema schema1 rename to schema2;
如果导出的schema1为public,切db2中的public有数据,上面步骤有可能会出现冲突。解决办法:
在db1中重命名public为schema1,再执行上述步骤。