Abd*_*aik 2 deployment ruby-on-rails heroku ruby-on-rails-5
我是一名 Rails 初学者,在部署到 Heroku 时遇到了一些问题。
早些时候我使用了 SQLite3,后来当我知道我需要 postgresql 时,我安装了它并在本地机器上工作。
从 sqlite 迁移到 postgresql 后,一次部署顺利。现在我看到了一些问题。
Heroku 日志、Gem 文件和 Database.yml 详细信息如下。
有人可以帮助我吗?
提前谢谢...!!!
宝石文件的一部分:
group :development, :test do
gem 'pg', '~> 1.0.0'
gem 'rails_12factor'
#gem 'sqlite3'
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
# Adds support for Capybara system testing and selenium driver
gem 'capybara', '~> 2.13'
gem 'selenium-webdriver'
end
group :production do
gem 'pg', '~> 1.0.0'
gem 'rails_12factor'
end
group :development do
# Access an IRB console on exception pages or by using <%= console %> anywhere in the code.
gem 'web-console', '>= 3.3.0'
end
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
Run Code Online (Sandbox Code Playgroud)
数据库.yml:
development:
adapter: postgresql
encoding: unicode
database: database_postgresql
pool: 5
username: postgres
password: secret
test:
adapter: postgresql
encoding: unicode
database: database_postgresql_test
pool: 5
username: postgres
password: secret
production:
adapter: postgresql
encoding: unicode
database: database_postgresql
pool: 5
username: postgres
password: secret
Run Code Online (Sandbox Code Playgroud)
Heroku 日志的一部分。
remote: -----> Installing node-v6.11.1-linux-x64
remote: -----> Detecting rake tasks
remote: -----> Preparing app for Rails asset pipeline
remote: Running: rake assets:precompile
remote: Yarn executable was not detected in the system.
remote: Download Yarn at https://yarnpkg.com/en/docs/install
remote: I, [2018-01-15T13:38:08.180450 #590] INFO -- : Writing /tmp/build_3dd0bceef080f0d8f6be5bc51b9d4a48/public/assets/jumbotron--032aba6cd1415006731040523573e7138c703aedc6d1f46b3622cbe4c9feec27.jpg
remote: rake aborted!
remote: Gem::LoadError: Specified 'postgresql' for database adapter, but the gem is not loaded. Add `gem 'pg'` to your Gemfile (and ensure its version is at the minimum required by ActiveRecord).
remote: /tmp/build_3dd0bceef080f0d8f6be5bc51b9d4a48/vendor/bundle/ruby/2.3.0/gems/activerecord-5.1.4/lib/active_record/connection_adapters/connection_specification.rb:188:in `rescue in spec'
remote: /tmp/build_3dd0bceef080f0d8f6be5bc51b9d4a48/vendor/bundle/ruby/2.3.0/gems/sprockets-rails-3.2.1/lib/sprockets/rails/task.rb:67:in `block (2 levels) in define'
remote: /tmp/build_3dd0bceef080f0d8f6be5bc51b9d4a48/vendor/bundle/ruby/2.3.0/gems/rake-12.3.0/exe/rake:27:in `<top (required)>'
remote: Tasks: TOP => assets:precompile
remote: (See full trace by running task with --trace)
remote: !
remote: ! Precompiling assets failed.
remote: !
remote: ! Push rejected, failed to compile Ruby app.
remote:
remote: ! Push failed
remote: Verifying deploy...
remote:
remote: ! Push rejected to damp-beyond-28813.
Run Code Online (Sandbox Code Playgroud)
如果您最近将您的应用程序部署到 Heroku 并且在您尝试访问 Heroku 应用程序链接时遇到“应用程序崩溃”错误,但其他一切似乎都井井有条,这很可能是由于新版本的'pg' gem. Postgres 发布了一个新版本的 gem,它似乎还不完全兼容,所以在你的 Gemfile 下group production更改行:
gem 'pg'
OR
gem 'pg', '~> 1.0.0'
Run Code Online (Sandbox Code Playgroud)
到
gem 'pg', '~> 0.11'
OR
gem 'pg', '~> 0.20.0'
Run Code Online (Sandbox Code Playgroud)
注意:前面的波浪号>不是破折号
在 Gemfile 的组生产中进行此更新后,请确保运行bundle install --without production(以更新 Gemfile.lock 文件),执行 git add/commit 循环,然后重新部署到 Heroku。
良好实践
使用pg gem一次,:group因为您的数据库与development&production!
| 归档时间: |
|
| 查看次数: |
990 次 |
| 最近记录: |