我今天用postgres

 pg_dump zeus_development -U test > zeus_development.dump.out

如果我想恢复到另一个数据库zeus_生产呢

我该怎么办?

推荐答案

简单地说,首先使用template0作为template database创建数据库:

createdb -U test -T template0 zeus_production

然后,在此数据库上恢复转储:

psql -U test zeus_production -f /path/to/zeus_development.dump.out

还原时,始终使用template0 explicit,因为它始终是一个空的、不可修改的数据库.如果不使用显式模板,PostgreSQL将假定为template1,并且如果它有一些对象,例如转储数据库已经有的表或函数,则在恢复时会出现一些错误.

尽管如此,即使要在具有相同名称(zeus_development)的数据库上恢复,也应该以相同的方式创建(或重新创建)它.除非在转储时使用-C选项(如果使用二进制转储,则使用pg_restore中的-C),否则我不建议这样做,因为这样做会降低灵活性(比如在不同的数据库名称上恢复).

Postgresql相关问答推荐

跟踪状态更改为特定值的日期

如何使用postgr sql regex删除重复项和inc表记录

读取扩展坞合成中的UDP:IO/超时

PostgreSQL无效语法

在postgres中撤销Select后,RLS停止工作

PostgreSQL:在 select 和 group by 中使用不同的列不会导致错误

Select 与输入数组完全相交的所有行?

Npgsql中准备好的语句和参数化查询有什么区别?

无法使用golang在postgresql中使用自定义类型插入/更新数据

Postgres >= 和 <= 具有特殊字符的行为

PostgreSQL 输入结束时的语法错误

PG::TRDeadlockDetected:ERROR: deadlock detected

LAG 函数和 GROUP BY

如何防止materialized 视图在 pg_restore 期间刷新?

在这个 Dockerfile 中创建的 Postgres 用户名/密码在哪里?

错误:must be owner of language plpgsql

在同一分区上应用多个窗口函数

manage.py 迁移时必须是关系 django_site 的所有者

PostgreSQL:将结果数据从 SQL 查询导出到 Excel/CSV

如何在Postgres中分组并返回总和行