我使用 heroku 的 postgres.app 安装了 postgres,在我的应用程序上工作时我需要不断地打开它。我相信在我使用自制软件之前没有任何东西在运行,而且我知道 sqlite 不需要在后台运行任何东西。为什么应用程序必须始终打开才能正常工作?谢谢
问问题
207 次
1 回答
1
这正是 Postgres.app 设计的工作方式;这是一种较新的方法,旨在比跟踪启动守护进程更快、更容易。(有点像 Heroku 是如何通过单击使大量插件工作的,而不是大量的命令行配置——它在 90% 的情况下使事情变得更简单,而牺牲了另外 10% 的成本。)
Postgres 本质上是一个客户端-服务器结构,因此使用 Postgres 数据库总是需要有效地连接到服务器——即使该服务器是 localhost。对于 Postgres.app,该服务器仅在应用程序运行时运行。在您之前的 homebrew 安装中,它应该是一个后台进程;即使您看不到它正在运行,它也在那里。
SQLite 是另一种野兽;它使用本地文件支持的存储,而不是连接到服务器,所以你是对的,在这种情况下没有后台进程可以连接。
您仍然可以使用 MacPorts(详见此处)或从源代码编译来获得传统的 Postgres 安装。显然它也包含在OS X Server中。其中任何一个都是后台进程,而不是依赖于正在运行的应用程序。
于 2013-02-28T05:59:13.797 回答