运维开发网

ruby-on-rails – 如何配置database.yml以部署到Heroku

运维开发网 https://www.qedev.com 2020-07-15 14:26 出处:网络 作者:运维开发网整理
我最近升级到最新版本的Rails,我不明白如何将应用程序部署到Heroku. 这是我的database.yml文件 default: &default adapter: postgresql pool: 5 timeout: 5000 development: <<: *default database: db/development.sqlite3 test: <<:
我最近升级到最新版本的Rails,我不明白如何将应用程序部署到Heroku.

这是我的database.yml文件

default: &default
  adapter: postgresql
  pool: 5
  timeout: 5000

development:
  <<: *default
  database: db/development.sqlite3

test:
  <<: *default
  database: db/test.sqlite3

production:
  <<: *default
  database: db/production.sqlite3

我以前从未在database.yml中看过这种语法.有谁知道如何配置这个?

它看起来与我以前的不同

development:
 adapter: mysql2
 encoding: utf8
 database: my_app_development
 pool: 5
 username: root
 password:

test:
 adapter: mysql2
 encoding: utf8
 database: my_app_test
 pool: 5
 username: root
 password:


production:
 adapter: mysql2
 encoding: utf8
 database: ymca_gym_production
 pool: 5
 username: root
 password:

谢谢

对于Heroku,你将不得不使用postgresql,因为它不支持mysql2. Heroku有自己的机制来处理数据库,您可以在这里阅读更多信息: https://devcenter.heroku.com/articles/heroku-postgresql

从本质上讲,处理“heroku的数据库”和您在此文件中定义的本地数据库完全不同.您可以更轻松地将sqlite用于本地和测试环境,对于生产,您应该将yaml代码更改为:

development:
 adapter: mysql2
 encoding: utf8
 database: my_app_development
 pool: 5
 username: root
 password:

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

production:
      adapter: postgresql
      database: my_database_production
      pool: 5
      timeout: 5000

上面的代码还不足以使它在heroku上工作,你还需要编辑gemfile内容,如下所示:

gem 'pg', :group => :production
gem 'mysql2' , :group => :development
gem 'sqlite3', :group => :test

我根据我编写的database.yaml代码制作了gemfile代码.您可以将mysql2用于开发和测试环境.如果您这样做,您可以更改gemfile内容,如下所示:

gem 'pg', :group => :production
gem 'mysql2' , :group => [:development, :test]

希望这可以帮助.. :)

0

精彩评论

暂无评论...
验证码 换一张
取 消