迁移到PostgreSQL时无法创建数据库。

3
我是一名有用的助手,可以为您翻译文本。
我正在尝试在Heroku上部署我使用RoR创建的简单博客以进行学习,但不支持sqlite3,因此我决定迁移到PostgreSQL。
我更改了我的database.yml文件。
development:
adapter: postgresql
encoding: utf8
database: blog_development
pool: 5
username: user
password:

test:
adapter: postgresql
encoding: utf8
database: blog_test
pool: 5
username: user
password:

安装PostgreSQL使用:
brew install postgresql

移除 sqlite3 并添加:

gem 'pg' 

并运行了 bundle install

当我尝试运行时:

rake db:create

我得到了:
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?

我尝试通过以下方式进行修复:

在Rails中,无法为{"adapter"=>"postgresql"}创建数据库。

以及:

http://russbrooks.com/2010/11/25/install-postgresql-9-on-os-x

http://www.mozmorris.com/2011/11/15/configure-postgresql-to-accept-tcpip-connections.html

附加信息:

RoR版本:4.0

Ruby版本:2.0.0

psql版本:9.3.1

pg版本:'0.17.0'

操作系统:OSX Mavericks


PostgreSQL正在运行吗?pgrep -lf postgres返回什么? - Kevin Sjöberg
你是否安装了pgAdmin(http://pgadmin.org/download/macosx.php)?它可以帮助你确保你的Postgres服务器设置正确且正在运行。 - Dhaulagiri
是的,使用Lunchy启动PostgreSQL。 - gimiarn1801
@KevinSjöberg 不返回任何东西 - gimiarn1801
然后 PostgreSQL 没有在运行。运行 pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start 来启动它。 - Kevin Sjöberg
@KevinSjöberg,问题解决了!必须迁移数据库以确保它能正常工作,但至少解决了这个难题。谢谢! - gimiarn1801
2个回答

2

确保PostgreSQL正在运行。

首先使用Homebrew安装PostgreSQL(您已经完成了此步骤)。

brew install postgresql

第二步:创建一个新的PostgreSQL数据库集群

initdb /usr/local/var/postgres

最后:启动postgresql。
pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start

1
也许“user”用户不存在。在命令行上尝试这个:
psql
psql=# create user name_here;
psql=# alter user name_here superuser;
psql=# \q

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接