我需要为同时具有本地和远程数据库服务器的系统运行集成测试;我想在我的开发 Mac 上在不同的端口上有两个 PostgreSQL 服务器。我通常使用 Postgres.app - 可以以某种方式将其配置为运行两个实例吗?
4 回答
只需从二进制目录 (/Applications/Postgres.app/Contents/Versions/latest/bin/initdb) 调用 initdb。如果你愿意,可以通过 --help 但 initdb 只需要一个数据目录,所以:
initdb -D <dir>
完成后转到您的新目录并编辑 postgresql.conf 并更改端口。
然后启动
如果您安装两个不同的 Postgresql 发行版,您可能会发现这更容易管理。在https://www.postgresql.org/download/macosx/中选择其中两个
如果您从未安装过 Fink、Homebrew 或 Macports,我建议您选择 Macports,因为它对其他工具的干扰较小。
要使用的端口号在 postgresql.conf 中配置。只需更改说
端口 = 5432
并重新启动该 PostgreSQL 服务器。
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)