postgresql – pg_dump和pg_restore(DROP IF EXISTS)

postgresql – pg_dump和pg_restore(DROP IF EXISTS),第1张

概述我想要一个完全基于 shell的解决方案来测试我的数据库,允许我通过运行终端命令将其恢复到一致状态. 我像这样转储我的数据库: pg_dump -F c -b -f -i -h domain.edu -p 5432 -n myschema -U me mydatabase -W -f mydump.sql 然后我想恢复它: pg_restore -h domain.edu -p 5432 -U m 我想要一个完全基于 shell的解决方案来测试我的数据库,允许我通过运行终端命令将其恢复到一致状态.

我像这样转储我的数据库:@H_419_2@

pg_dump -F c -b -f -i -h domain.edu -p 5432 -n myschema -U me mydatabase -W -f mydump.sql

然后我想恢复它:@H_419_2@

pg_restore -h domain.edu -p 5432 -U me -d mydatabase -W mydump.sql

但它没有用,因为我遇到了很多这样的错误:@H_419_2@

pg_restore: [archiver (db)] Could not execute query: ERROR:  constraint "settings_person_ID_fkey" for relation "settings" already exists    Command was: ALTER table ONLY settings    ADD CONSTRAINT settings_learner_ID_fkey FOREIGN KEY (person_ID) REFERENCES pe...

基本上只有很多东西需要先重新添加才能被重新添加(DROP table< what> IF EXISTS,与类型相同等).@H_419_2@

我怎么能用Postgres做到这一点?我不想使用psql控制台,只有linux终端.@H_419_2@ 如果要将数据库还原到一致状态,建议您在还原转储之前删除并重新创建它:

dropdb -h domain.edu -U me mydatabasecreatedb -h domain.edu -U me -T template0 mydatabase # adjust enCoding/locale if necessarypg_restore -h domain.edu -p 5432 -U me -d mydatabase -W mydump.sql
总结

以上是内存溢出为你收集整理的postgresql – pg_dump和pg_restore(DROP IF EXISTS)全部内容,希望文章能够帮你解决postgresql – pg_dump和pg_restore(DROP IF EXISTS)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/1164831.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-01
下一篇2022-06-01

发表评论

登录后才能评论

评论列表(0条)

    保存