Ruby on rails Rails:从sqlite开始->;博士后

Ruby on rails Rails:从sqlite开始->;博士后,ruby-on-rails,ruby,sqlite,postgresql,heroku,Ruby On Rails,Ruby,Sqlite,Postgresql,Heroku,我用sqllite构建了一个rails应用程序,我想把它推给heroku。我知道我必须使用postgres,所以我必须在gem文件中添加生产使用gem'pg'。但我不知道如何更改database.yml 我的database.yml应该是什么样子?它目前的样子: development: adapter: sqlite3 database: db/development.sqlite3 pool: 5 timeout: 5000 test: adapter: sqlite3

我用sqllite构建了一个rails应用程序,我想把它推给heroku。我知道我必须使用postgres,所以我必须在gem文件中添加生产使用
gem'pg'
。但我不知道如何更改database.yml

我的database.yml应该是什么样子?它目前的样子:

development:
  adapter: sqlite3
  database: db/development.sqlite3
  pool: 5
  timeout: 5000

test:
  adapter: sqlite3
  database: db/test.sqlite3
  pool: 5
  timeout: 5000

production:
  adapter: sqlite3
  database: db/production.sqlite3
  pool: 5
  timeout: 5000
我应该用这个来代替开发吗

development:
  adapter: postgresql
  encoding: unicode
  database: poets_app_development
  pool: 5
  username: poets_app
  password:

用户名和密码!?我从来没有为sqlite设置过,所以它来自哪里?用户和密码与sqlite无关。这些是您的Postgres服务器的凭据。请看一篇在Ubuntu中配置Postgres的文章(部分:设置PostgreSQL用户和密码)

您还可以将主机添加到
数据库中。yml

host: <hostname or ip address. eg.: localhost>
主机:

database.yml文件是rails应用程序通用数据库配置的抽象

用户名和密码可以放在文件中,但不建议这样做。您可能已经使用类似于
homebrew
的工具设置了postgres。此设置是干式的,并使用环境变量保护您的机密。祝你好运

考虑使用以下配置:

defaults: &defaults
  adapter: postgresql
  encoding: unicode
  pool: 5
  username: <%= ENV['YOUR_DB_USERNAME'] %> (username if PostgreSQL via Homebrew)
  password: <%= ENV['YOUR_DB_PWD'] %>

development:
 <<: *defaults
 database: postgres_development

test: &test
  <<: *defaults
  database: postgres_test

production:
  <<: *defaults
  database: postgres_production
defaults:&defaults
适配器:postgresql
编码:unicode
游泳池:5
用户名:(如果PostgreSQL通过自制,则为用户名)
密码:
发展: