postgresql 如何导入bash shell中不存在的数据库?

uplii1fm  于 2023-11-18  发布在  PostgreSQL
关注(0)|答案(1)|浏览(129)

在bash命令中导出名为english的数据库:

pg_dump --no-owner --dbname=postgresql://postgres:password@localhost/english  > /tmp/database.sql

字符串
现在我进入psql并删除数据库english

psql -U postgres
drop database english;


并退出。
现在我想导入不存在的数据库english

psql -U postgres -d english  < /tmp/database.sql
#it can't work,error  
psql: error: FATAL:  database "english" does not exist


先创建english数据库,然后导入整个数据库即可:

psql -U postgres
create database english;
press ctrl+d to exit 
#execute in bash shell command
psql -U postgres -d english  < /tmp/database.sql


如何导入bash shell中还不存在的数据库?

55ooxyrt

55ooxyrt1#

如果你像你一样使用普通格式转储,你必须用--create选项创建转储,这样它就包含了一个CREATE DATABASE语句:

pg_dump --create ... -f database.sql english

字符串
要恢复这样的转储,请连接到数据库postgres

psql -d postgres database.sql


如果您使用的是自定义格式转储(我推荐),那么在恢复转储时可以指定--create

相关问题