PostgreSQL 10 为 config_file 和 data_directory 使用不同的目录

PostgreSQL 10 Use different directories for config_file and data_directory

我想使用 /some/dir/postgresql.conf 启动 postmaster 并获取数据 /in/another/directory.

我试过:

设置 -D /some/dir 有效,它使用来自正确路径的 postgresql.conf,但它不遵守 data_directory 并且仍然使用 -D 中指定的目录。

postgres=# SELECT name, setting FROM pg_settings WHERE setting LIKE '/%';
          name           |              setting
-------------------------+------------------------------------
 config_file             | /some/dir/postgresql.conf
 data_directory          | /some/dir

我无法以显示 config_file 和 data_directory 的不同目录的任何方式启动 postmaster。

在一个目录中配置启动 postmaster 并使其读取 data_directory 以查找 DB 的位置的正确方法是什么?

谢谢!

-D 选项(与直觉相反)不是 数据目录,而是包含 postgresql.conf 的目录。正如 the documentation 所说:

-D <em>datadir</em>

    Specifies the file system location of the database configuration files.

然后通过设置data_directory参数在postgresql.conf中指定数据目录。