我使用PostgreSQL将Rails 5部署到Heroku中的免费应用程序。这是我在database.yml
的配置:
production:
adapter: postgresql
username: root
password:
database: example
当我运行heroku run rake db:migrate
时,我看到了这个错误:
耙子流产了! PG :: ConnectionBad:无法连接到服务器:没有这样的文件或目录服务器是否在本地运行并接受Unix域套接字“/var/run/postgresql/.s.PGSQL.5432”上的连接?
如果我将此行添加到database.yml
:
host: localhost
并再次运行迁移,我看到这个错误:
耙子流产了! PG :: ConnectionBad:无法连接到服务器:连接被拒绝服务器是否在主机“localhost”(127.0.0.1)上运行并接受端口5432上的TCP / IP连接?
怎么解决?
似乎没有为您的应用提供数据库,您需要添加一个:
heroku addons:create heroku-postgresql
您可以通过运行以下命令验证数据库已添加到您的应用程序
heroku config --app your_app_name
按顺序执行一些步骤,
$ heroku login
gem sqlite
至
gem 'sqlite3', group: :development
gem 'pg', '0.18.1', group: :production
gem 'rails_12factor', group: :production
$ bundle install
production:
<<: *default
database: db/production.sqlite3
至
production:
<<: *default
adapter: postgresql
database: db/production.sqlite3
$ git add .
$ git commit -m "Heroku config"
$ heroku create
$ git push heroku master
$ heroku run rake db:migrate
我希望它有效。所以正确地遵循第5步。
删除旧数据库后,您应该执行此操作
heroku pg:promote HEROKU_POSTGRESQL_NEW_DATABASE
您可以检查您的数据库昵称
heroku pg:info