我需要对一个同时具有本地和远程数据库服务器的系统运行集成测试;我希望在我的dev上在不同的端口上有两个PostgreSQL服务器。我通常使用Postgres.app --可以将其配置为运行两个实例吗?
发布于 2016-08-26 17:54:01
只需从二进制目录(/Applications/Postgres.app/Contents/Versions/latest/bin/initdb).调用initdb即可。Pass --如果您愿意,请提供帮助,但initdb只需要一个数据目录,因此:
initdb -D <dir>完成后,转到您的新目录并编辑postgresql.conf并更改端口。
那就启动
发布于 2016-08-26 20:22:16
如果您安装了Postgresql的两个不同发行版,您可能会发现这更容易管理。选择https://www.postgresql.org/download/macosx/的两个
如果您从未安装Fink、Homebrew或Macports,我建议您选择Macports,因为它对其他工具的干扰较小。
要使用的端口号在postgresql.conf中配置。只要换行上面写的
港口= 5432
并重新启动该PostgreSQL服务器。
发布于 2016-08-26 21:57:36
虚拟机
另一个选项是在Mac上的虚拟机中运行每个Postgres集群(安装)。
平行线
我已经在Mac的Parallels桌面版本9、10和11中这样做了。(版本12是当前版本,但我还没有在Postgres上尝试过)。
我特别喜欢为Postgres使用VM,因为当不使用Postgres.app时,这个严肃的数据库往往是一个重量级的安装,例如当使用EnterpriseDB.com提供的安装程序作为对社区的礼貌时。
网络
您可以将网络配置为完全隔离,共享主机Mac的网络标识,或者为VM分配自己的IP地址,并在网络上充当单独的计算机。选择Configure… > Hardware > Network 1。在Source弹出菜单中,您可以为虚拟机网络适配器选择下列网络类型之一(描述摘自联机帮助):
您可以用自己的IP号配置每个VM,而每个VM内部的Postgres使用相同的默认端口5432。提示:使用ping命令行工具来验证来宾和主机macOS是否可以到达对方。
测试
虚拟机可以帮助进行测试。
您可以以这种方式测试macOS,以来宾身份运行旧版本或较新版本的macOS。来宾macOS版本不需要与主机相同。
同样,为了测试目的,可以在不同的VM中安装不同版本的Postgres。
您可以创建一个表示整个VM的单个文件的备份副本(当然,首先关闭VM )。当您想要恢复到它的原始状态时,请用备份的新副本替换当前的VM文件。
其他虚拟机
Parallels只是macOS (MacOS)三个成功的虚拟机应用程序之一。我希望这三者都能很好地托管Postgres服务器。
苹果现在允许在Mac上作为主机运行时,将最新版本的macOS作为客户操作系统安装在虚拟机中。(许多年前以前是不允许的。) 读他们的执照的细节。
https://stackoverflow.com/questions/39171536
复制相似问题