ruby-on-rails – 如何配置database.yml以部署到Heroku
发布时间:2020-12-17 02:07:37 所属栏目:百科 来源:网络整理
导读:我最近升级到最新版本的Rails,我不明白如何将应用程序部署到Heroku. 这是我的database.yml文件 default: default adapter: postgresql pool: 5 timeout: 5000development: : *default database: db/development.sqlite3test: : *default database: db/test.s
我最近升级到最新版本的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内容,:group => [:development,:test] 希望这可以帮助.. :) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |