首先,我完全是个 Rails/PostgreSQL 菜鸟。
我正在尝试将 Rails 应用程序部署到 Heroku。我已经启动并运行它,但每次部署时,Heroku 都会忽略我的 database.yml 信息并生成一个新数据库。这是我的 database.yml
# SQLite version 3.x
# gem install sqlite3
#
# Ensure the SQLite 3 gem is defined in your Gemfile
# gem 'sqlite3'
#
default: &default
adapter: sqlite3
pool: 5
timeout: 5000
development:
# <<: *default
# database: db/development.sqlite3
adapter: postgresql
pool: 5
host: wwydh.cqqq2sesxkkq.us-east-1.rds.amazonaws.com
timeout: 5000
username: wwydh_a_team
password: really cool password
database: wwydh
host: wwydh.cqqq2sesxkkq.us-east-1.rds.amazonaws.com
port: 5432
# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
<<: *default
database: db/test.sqlite3
我做错了什么?
最佳答案
heroku config:add DATABASE_URL=postgres://{user}:{password}@{hostname}:{port}/{database-name}
然后重新部署您的应用。它将读取您的 DATABASE_URL 并从中生成 database.yml。
编辑
根据这个SO question需要先分离数据库,然后更新变量 DATABASE_URL。
heroku addons:attach heroku-postgresql -a <app_name> --as HEROKU_DATABASE
heroku addons:detach DATABASE -a <app_name>
heroku config:add DATABASE_URL=.....
关于ruby-on-rails - 使用外部 postgres 数据库将 rails 部署到 Heroku,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39443244/