我的本地 Postgres 服务器配置为在计算机启动时启动。我刚刚更改了postgresql.conf
文件,不得不重新启动服务器。我做了:
pg_ctl restart
Run Code Online (Sandbox Code Playgroud)
从在下一个命令提示符下启动服务器的命令行 BUT:
pg_ctl:旧的服务器进程(PID:2968)似乎消失了 无论如何启动服务器 服务器启动 D:\>2016-10-12 16:24:48 EDT LOG:将日志输出重定向到日志收集器进程 2016-10-12 16:24:48 EDT 提示:未来的日志输出将出现在目录“pg_log”中。
如果我ctrl-c
退出或关闭命令窗口,则关闭服务器。如何pg_ctl
在后台(重新)启动服务器,模拟默认情况下的工作方式(作为 Windows 服务)?
我刚刚注意到 PostgreSQL 允许在数据库中重复外键(以及可能的其他约束)名称,只要它们位于不同的表上即可。
因此,如果父表是并且Foo
它有两个子表,则两个表上的外键都可以命名。BarX
BarY
FK_fooid
在我看来,这是一个糟糕的设计,因为
select * from information_schema.referential_constraints
where constraint_name = 'FK_fooid'
Run Code Online (Sandbox Code Playgroud)
将返回两行相同的行,无法区分哪一行对应于哪个表/键。
有没有办法在 Postgres 中的数据库中禁用约束名称的重复,并强制每个约束都有唯一的名称?
简单的问题:我想将 Postgres 服务器的所有数据、模式、角色以及所有内容从 Windows 迁移到 Linux。
%PGDATA%
我可以只复制Windows 中服务器指向 Linux 的目录内容,然后启动服务器,将 PGDATA 参数/变量指向该目录吗?换句话说,数据文件平台是否独立,使得从一个操作系统移植到另一个操作系统只需复制?
我还开发了一个用于克隆 PG 数据库、架构+数据的脚本,但由于多种原因,我更愿意将数据文件放在 USB 驱动器上并完成它。