我需要运行集成测试,测试一个系统同时连接本地和远程数据库服务器;我想在我的开发Mac上有两个不同端口的PostgreSQL服务器。我通常使用Postgres.app - 是否可以配置它来运行两个实例?
我需要运行集成测试,测试一个系统同时连接本地和远程数据库服务器;我想在我的开发Mac上有两个不同端口的PostgreSQL服务器。我通常使用Postgres.app - 是否可以配置它来运行两个实例?
只需从二进制目录 (/Applications/Postgres.app/Contents/Versions/latest/bin/initdb) 调用 initdb。如果需要,可以传递 --help,但 initdb 只需要一个数据目录:
initdb -D <dir>
完成后,请进入新目录并编辑postgresql.conf文件,更改端口号。
然后启动。
另一个选择是在Mac上的每个Postgres群集(安装)中运行虚拟机。
我已经使用Parallels Desktop For Mac 9、10和11版本实现了这一点。(版本12是当前版本,但我还没有尝试过它与Postgres一起使用。)
我特别喜欢使用虚拟机来运行Postgres,因为这个严肃的数据库 tends tends tend to be a rather heavyweight installation when not using Postgres.app, such as when using the installers provided by EnterpriseDB.com作为对社区的一种礼遇。
配置...
> 硬件
> 网络 1
。在源
弹出菜单中,您可以为虚拟机网络适配器选择以下网络类型之一(摘自在线帮助的描述)。
您可以为每个虚拟机配置自己的IP号码,而其中的Postgres都使用默认端口5432
。提示:使用ping
命令行工具验证客户机和主机macOS之间是否可以相互访问。
虚拟机可以帮助测试。
您可以通过这种方式测试macOS,运行较旧或较新版本的macOS作为客户端。客户端macOS版本不需要与主机相同。
同样,您可以在不同的虚拟机中安装不同版本的Postgres以进行测试。
您可以备份代表整个虚拟机的单个文件(当然要先关闭虚拟机)。任何时候想要恢复到原始状态,只需用备份的新副本替换当前的虚拟机文件。
Parallels只是可用于macOS(Mac OS X)的三个成功的虚拟机应用程序之一。我期望所有三个都能很好地托管Postgres服务器。
苹果现在不允许在Mac主机上运行虚拟机时将最新版本的macOS作为客户操作系统进行安装。(以前很多年也不允许。)详情请阅读他们的许可证。
PostgresApp确实具备这种能力,尽管它是隐藏的。(这个答案晚了3年,当时该应用程序可能没有这个功能)
打开应用程序后,打开侧边栏(源代码),然后单击+
图标以添加另一个服务器。您可以为每个服务器选择名称
/版本
/端口
。
如果您还没有设置CLI工具(源代码),请确保进行设置。
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:
2022-06-26 14:25:20.470 EDT [80414] FATAL: semctl(65638, 16, SETVAL, 536) failed: Invalid argument 2022-06-26 14:25:20.470 EDT [80414] LOG: database system is shut down
吗? - Janac Meena