我对 RoR 很陌生,我希望将我的下一个应用程序部署到 heroku。我希望我的开发和测试环境与我的生产环境相匹配,以实现最平稳的过渡。因此,我开始在我的系统上安装 postgresql。这个过程非常令人沮丧,我非常困惑。我遵循了无数教程,但无济于事,而且似乎很多都有相互矛盾的信息。这是我所知道的:
有很多方法可以安装 postgresql。常见的选项是 macports、homebrew、fink、Postgresql.app 或 enterpriseDB。一旦你安装了前面的一个,你必须创建你的 rails 应用程序并运行:
rails new <app_name> -d postgresql
或运行标准的“rails new”,然后在 gemfile 中将“sqlite3”更改为“pg”。然后,如果我是正确的,您实际上必须通过执行以下操作在命令行中创建自己的数据库:
$ psql
$ CREATE DATABASE your_database_name;
然后,编辑您的 database.yml 以遵循以下内容:
development:
adapter: postgresql
encoding: unicode
database: <your_database_name>
host: localhost
pool: 5
username: <username>
password:
一旦完成,一切都应该很好。但是,我遇到了问题。我实际上使用上述过程让它工作,但我对它的运行方式感到困惑。在试图让这一切正常工作的几个小时里,我安装了 macports、homebrew 和 postgresql.app。但是,每当我尝试在没有运行 postgresql.app 的情况下与数据库交互(例如“rake db:migrate”)时,我都会收到此错误:
could not connect to server: Connection refused
Is the server running on host "localhost" (::1) and accepting
TCP/IP connections on port 5432?
could not connect to server: Connection refused
Is the server running on host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 5432?
could not connect to server: Connection refused
Is the server running on host "localhost" (fe80::1) and accepting
TCP/IP connections on port 5432?
如果我重新启动它,一切都很好。好的,这让我假设我的系统正在使用 postgresql.app 来运行 postresql。有了这些信息,我自信地卸载了 postgresql 的 macports 和 hombrew 安装。但是,这样做后,我在尝试与数据库交互时收到此错误:
Library not loaded: /usr/local/lib/libpq.5.4.dylib (LoadError)
我重新安装了macports,仍然得到同样的错误。然后我重新安装自制软件,错误消失了。然后我再次卸载macports,一切都很好。似乎 postgresql.app 和我的自制软件安装在某种程度上相互依赖。如果我是正确的,它们应该能够彼此独立运行,因为每个都是 postgreql 的完整安装。在这一点上,我几乎没有想法。非常感谢有关如何完成此过程的任何和所有输入。
编辑
$ which psql
显示:
/usr/local/bin/psql
和
ls -l /usr/local/bin/psql
显示:
lrwxr-xr-x 1 robertquinn admin 35 Jul 29 17:32 /usr/local/bin/psql -> ../Cellar/postgresql/9.1.4/bin/psql