Dar*_*use 5 database ruby-on-rails heroku
我最近升级到了最新版本的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
Run Code Online (Sandbox Code Playgroud)
我以前从未在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:
Run Code Online (Sandbox Code Playgroud)
谢谢
小智 2
对于 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
Run Code Online (Sandbox Code Playgroud)
上面的代码还不足以让它在heroku上运行,您还需要编辑gemfile内容,如下所示:
gem 'pg', :group => :production
gem 'mysql2' , :group => :development
gem 'sqlite3', :group => :test
Run Code Online (Sandbox Code Playgroud)
我根据我编写的database.yaml代码制作了gemfile代码。您可以使用mysql2作为开发和测试环境。如果您这样做,您可以更改 gemfile 内容,如下所示:
gem 'pg', :group => :production
gem 'mysql2' , :group => [:development, :test]
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.. :)
| 归档时间: |
|
| 查看次数: |
5035 次 |
| 最近记录: |