我正在尝试从SQLite迁移到Postgres,以便应用程序在Heroku上正确部署。但我没有运气。
rake aborted!
PG::ConnectionBad: 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?
我是Postgres的新手,但我已经尝试了所有我没遇到的任何建议。这是我的database.yaml文件:
default: &default
adapter: postgresql
encoding: unicode
pool: 5
timeout: 5000
host: localhost
username: postgres
password: postgres
development:
<<: *default
database: app_development
test:
<<: *default
database: app_test
production:
<<: *default
database: app_production
我相信我在Postgres列表中正确设置了空数据库,但运行rake db:migrate失败。
非常感谢任何帮助。
答案 0 :(得分:0)
如果你还没有跑:
sudo service postgresql start
在cloud9终端
然后切换到你的postgres用户并验证你是否拥有你在database.yaml中创建的数据库
sudo su - postgres
psql
然后在psql提示符下输入以下命令以列出所有可用数据库
\list
如果您需要创建数据库,可以输入
CREATE DATABASE "database_name";
要设置postgres用户的密码
\password postgres
完成上述步骤后,请确保您的database.yaml文件具有正确的数据库名称,用户名和密码并尝试运行
rake db:migrate
如果数据库设置正确且配置了database.yaml文件
尝试重新启动postgres服务器
sudo /etc/init.d/postgresql restart
然后再次运行rake db:migrate
<强>来源强>
与设置PostgresSQL相关的Cloud9 docs
Cloud9 Forum Post与在Rails应用程序中设置PostgreSQL有关
与更改psql密码相关的Stackoverflow post
与重启PostgreSQL服务器相关的Stackoverflow post
<强>替代强> 我已经设法将我开始使用SQLite开发的应用程序推送到heroku的另一种方法是将SQLite gem移动到我的Gemfile中的开发组中,并添加一个具有heroku依赖项的生产组:
group :production do
gem 'rails12_factor'
gem 'pg'
end
然后在没有生产组的开发包安装中:
bundle install --without production
当我推送到heroku时,做正常的bundle安装