我想要一个完全基于
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 me -d mydatabase -W mydump.sql
但它没有用,因为我遇到了很多这样的错误:
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,与类型相同等).
我怎么能用Postgres做到这一点?我不想使用psql控制台,只有linux终端.
如果要将数据库还原到一致状态,建议您在还原转储之前删除并重新创建它:
dropdb -h domain.edu -U me mydatabase createdb -h domain.edu -U me -T template0 mydatabase # adjust encoding/locale if necessary pg_restore -h domain.edu -p 5432 -U me -d mydatabase -W mydump.sql
原文地址:https://www.jb51.cc/postgresql/191956.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。