相关疑难解决方法(0)

CREATE DATABASE ...WITH TEMPLATE 似乎在 PostgreSQL 中失去了关系

我正在尝试根据 2009 年的 SO 答案在 postgresql 中创建数据库的副本,但遇到了问题。

在 Postgres 9.3.9 中,这将创建一个没有关系的数据库(gcis 数据库存在并且具有表和数据):

postgres=# CREATE DATABASE gcis_rollback WITH TEMPLATE gcis OWNER postgres;
CREATE DATABASE
postgres=# \c gcis_rollback
You are now connected to database "gcis_rollback" as user "postgres".
gcis_rollback=# \d
No relations found.
Run Code Online (Sandbox Code Playgroud)

我使用命令行得到同样的结果createdb

~$ createdb -O postgres -T gcis gcis_rollback2
~$ psql gcis_rollback2
psql (9.3.9)
Type "help" for help.

gcis_rollback2=# \d
No relations found.
Run Code Online (Sandbox Code Playgroud)

为什么我看不到该数据库的完整副本?

背景- 这是一个开发服务器,我可以在其中断开连接来制作副本。我想要的只是一个本地副本,以便在使用 Perl 框架开发/测试数据库架构更改时轻松回滚我想要的只是一个本地副本,以便在使用 Perl 框架Module::Build::Database来构建补丁 …

postgresql copy

5
推荐指数
1
解决办法
2390
查看次数

将 search_path 重置为全局、集群默认值

search_path假设我像这样永久更改我的数据库:

ALTER DATABASE my_db SET search_path TO "$user",public,other_schema;
Run Code Online (Sandbox Code Playgroud)

如何将其重置回该集群上原始的、未更改的数据库所具有的默认值?

这通常是这样"$user",public,但可以通过配置文件进行更改。有一种方法可以读取来自配置文件的参数值(因此我可以在最坏的情况下构建动态查询),但我没有找到任何类似的东西。

postgresql configuration

3
推荐指数
1
解决办法
6133
查看次数

标签 统计

postgresql ×2

configuration ×1

copy ×1