我对RoR非常陌生,我想把我的下一个应用部署到heroku。我希望我的开发和测试环境与我的生产环境相匹配,以实现最平稳的过渡。因此,我开始在我的系统上安装postgresql。这一过程不仅令人沮丧,而且我也不感到困惑。我学习了无数的教程,但都没有用,而且似乎有很多相互矛盾的信息。以下是我所知道的:
安装postgresql的方法很多。常见的选项是macport、homebrew、fink、Postgresql.app或enterpriseDB。安装上一个之后,您必须创建rails应用程序并运行:
rails new <app_name> -d postgresql或者运行标准的'rails新‘,然后将'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:一旦做到了,一切都会好起来的。不过,我有问题。实际上,我让它使用上面的过程工作,但是我对它是如何运行的感到困惑。在几个小时的努力使所有这些工作,我安装了macport,自制,和postgresql.app。但是,每当我试图在没有运行postgresql.app的情况下与数据库进行交互(例如“rake:迁移”),我就会得到以下错误:
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的macport和hombrew安装。然而,在这样做时,当我试图与数据库交互时,我会得到这个错误:
Library not loaded: /usr/local/lib/libpq.5.4.dylib (LoadError)我重新安装macport,但仍然得到相同的错误。然后我重新安装自制软件,错误就消失了。然后我再次卸载macport,一切都还好。看来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 发布于 2012-08-05 16:13:55
自制绝对是最好的选择。在使用了多年的Macports之后,我发现Homebrew在使用、升级和维护上要容易得多。
如果你是新的家庭酿造,有时当你安装一些东西,会有输出打印在安装的末尾,这给你额外的任务。有时安装要求您手动创建新链接,有时它要求您使用新的地窖定位可执行文件重做链接。确保您阅读了输出,并遵循这些安装后说明。
遵循这些指令后,打开一个新的终端窗口,以确保您的设置受到尊重。
另外,如果您使用rails new app_name -D postgresql,您的database.yml文件应该已经被正确配置,除非您已经将postgres实例配置为使用用户名和密码。
为了使启动和停止postgres更容易,我将这些命令添加到我的.profile文件中
# postgres
alias pg_start="pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start"
alias pg_stop="pg_ctl -D /usr/local/var/postgres stop -s -m fast"https://stackoverflow.com/questions/11714274
复制相似问题