3

我需要为同时具有本地和远程数据库服务器的系统运行集成测试;我想在我的开发 Mac 上在不同的端口上有两个 PostgreSQL 服务器。我通常使用 Postgres.app - 可以以某种方式将其配置为运行两个实例吗?

4

4 回答 4

5

只需从二进制目录 (/Applications/Postgres.app/Contents/Versions/latest/bin/initdb) 调用 initdb。如果你愿意,可以通过 --help 但 initdb 只需要一个数据目录,所以:

initdb -D <dir>

完成后转到您的新目录并编辑 postgresql.conf 并更改端口。

然后启动

于 2016-08-26T17:54:01.447 回答
1

如果您安装两个不同的 Postgresql 发行版,您可能会发现这更容易管理。在https://www.postgresql.org/download/macosx/中选择其中两个

如果您从未安装过 Fink、Homebrew 或 Macports,我建议您选择 Macports,因为它对其他工具的干扰较小。

要使用的端口号在 postgresql.conf 中配置。只需更改说

端口 = 5432

并重新启动该 PostgreSQL 服务器。

于 2016-08-26T20:22:16.243 回答
1
于 2016-08-26T21:57:36.480 回答
0

PostgresApp 确实有这种能力,虽然它是隐藏的。(这个答案晚了 3 年,当时的应用可能还没有这个)

下载链接

当您打开应用程序时,打开侧边栏 ( source ) 并单击+图标以添加另一个服务器。您可以为每个服务器选择name// version​​。port

如果您还没有设置 CLI 工具 ( source ) ,请确保设置。

sudo mkdir -p /etc/paths.d && echo /Applications/Postgres.app/Contents/Versions/latest/bin | sudo tee /etc/paths.d/postgresapp

如果您想psql为每个服务器使用不同的命令,请添加一些有用的别名到您的~/.profile:

# Name them whatever you want
alias "psql-project1"="psql -h localhost -p 5432"
alias "psql-project2"="psql -h localhost -p 5433"

截至2020/03/30,下载页面允许您安装支持以下版本的不同版本的 PostgresApp:

  • Postgres.app 与 PostgreSQL 12.1
  • 带有 PostgreSQL 10.11、11.6 和 12.1 的 Postgres.app
  • Postgres.app 包含当前支持的所有 PostgreSQL 版本(12.1、11.6、10.11、9.6.16、9.5.20、9.4.25)
于 2020-03-31T13:32:02.653 回答