为了将Rails应用程序推送到Heroku,在config / database.yml中配置数据库的正确方法是什么?

时间:2019-01-12 19:12:55

标签: ruby-on-rails ruby heroku

我正试图将Rails应用推到Heroku并遇到困难。

config/database.yml文件中,我看到了这样的示例,其中数据库名称以'db /'为前缀:

production:
  <<: *default
  database: db/the_business_casual_pro

以及类似的示例,不带前缀:

development:
  <<: *default
  database: FullstackProject_development

一种方法优先于另一种方法,还是一种较旧的方法呢?

现在我的database.yml文件就是这样:

default: &default
  adapter: postgresql
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  timeout: 5000

development:
  <<: *default
  database: db/the_business_casual_dev

test:
  <<: *default
  database: db/the_business_casual_test

production:
  <<: *default
  database: db/the_business_casual_pro

我在上一个项目中已经看过下面的代码,但是不确定要首先添加这些行是什么。

production:
  <<: *default
  database: FullstackProject_production
  username: FullstackProject
  password: <%= ENV['FULLSTACKPROJECT_DATABASE_PASSWORD'] %>

非常感谢任何见解!

1 个答案:

答案 0 :(得分:2)

通常,在本地开发Rails应用程序时,不是使用Postgres实例进行开发,而是使用SQLite数据库。 Rails将这些数据库存储在名为db的文件夹中。实际上,您可以检查项目的db,如果其中有任何文件。

使用Heroku,您正在使用Postgres实例,并以另一种方式定义数据库。

因此,我将保留db/进行开发(包括SQLite适配器)和生产,您可能希望将ENV["DATABASE_URL"]用作Heroku suggests