Я пытаюсь развернуть свое приложение в Heroku. (Я никогда не делал это раньше). Сначала у меня была база данных sqlite
, но потом я обнаружил, что для этого вам нужна база данных postgres
. Так что я все включил, и теперь, когда я пытаюсь запустить git push heroku master
, я получаю эту ошибку. `не мог обнаружить грабли
Когда я попытался запустить bundle exec rake -P
, все, казалось, работало просто отлично.
Мои журналы ошибок:
remote: ! Could not detect rake tasks
remote: ! ensure you can run `$ bundle exec rake -P` against your app
remote: ! and using the production group of your Gemfile.
remote: ! rake aborted!
remote: ! NameError: undefined local variable or method `config' for main:Object
remote: ! /tmp/build_154932c2286286ad0f0668edbed5dc08/config/application.rb:6:in `<top (required)>'
remote: ! /tmp/build_154932c2286286ad0f0668edbed5dc08/Rakefile:4:in `require_relative'
remote: ! /tmp/build_154932c2286286ad0f0668edbed5dc08/Rakefile:4:in `<top (required)>'
remote: ! /tmp/build_154932c2286286ad0f0668edbed5dc08/vendor/bundle/ruby/2.4.0/gems/rake-13.0.1/lib/rake/rake_module.rb:29:in `load'
remote: ! /tmp/build_154932c2286286ad0f0668edbed5dc08/vendor/bundle/ruby/2.4.0/gems/rake-13.0.1/lib/rake/rake_module.rb:29:in `load_rakefile'
remote: ! /tmp/build_154932c2286286ad0f0668edbed5dc08/vendor/bundle/ruby/2.4.0/gems/rake-13.0.1/lib/rake/application.rb:703:in `raw_load_rakefile'
remote: ! /tmp/build_154932c2286286ad0f0668edbed5dc08/vendor/bundle/ruby/2.4.0/gems/rake-13.0.1/lib/rake/application.rb:104:in `block in load_rakefile'
remote: ! /tmp/build_154932c2286286ad0f0668edbed5dc08/vendor/bundle/ruby/2.4.0/gems/rake-13.0.1/lib/rake/application.rb:186:in `standard_exception_handling'
remote: ! /tmp/build_154932c2286286ad0f0668edbed5dc08/vendor/bundle/ruby/2.4.0/gems/rake-13.0.1/lib/rake/application.rb:103:in `load_rakefile'
remote: ! /tmp/build_154932c2286286ad0f0668edbed5dc08/vendor/bundle/ruby/2.4.0/gems/rake-13.0.1/lib/rake/application.rb:82:in `block in run'
remote: ! /tmp/build_154932c2286286ad0f0668edbed5dc08/vendor/bundle/ruby/2.4.0/gems/rake-13.0.1/lib/rake/application.rb:186:in `standard_exception_handling'
remote: ! /tmp/build_154932c2286286ad0f0668edbed5dc08/vendor/bundle/ruby/2.4.0/gems/rake-13.0.1/lib/rake/application.rb:80:in `run'
remote: ! /tmp/build_154932c2286286ad0f0668edbed5dc08/vendor/bundle/ruby/2.4.0/gems/rake-13.0.1/exe/rake:27:in `<top (required)>'
remote: ! ./vendor/bundle/bin/rake:29:in `load'
remote: ! ./vendor/bundle/bin/rake:29:in `<main>'
Я вошел в настройки herokue и установил RAILS_SERVE_STATIC_FILES
на true
У меня есть драгоценный камень pg
мой гемфайл (только что указано как gem 'pg'
)
Мой файл БД
default: &default
adapter: postgresql
encoding: unicode
pool: 5
development:
host: 127.0.0.1
adapter: postgresql
encoding: unicode
database: myDatabase_development
username: username
timeout: 5000
pool: 5
test:
adapter: postgresql
encoding: unicode
database: myDatabase_testing
username: username
timeout: 5000
production:
url: <%= ENV["DATABASE_URL"] %>
pool: <%= ENV["DB_POOL"] || ENV['RAILS_MAX_THREADS'] || 5 %>
database: myDatabase_production
username: username
timeout: 5000
pool: 5
Мой рабочий файл
Rails.application.configure do
config.cache_classes = true
config.eager_load = true
config.consider_all_requests_local = false
config.action_controller.perform_caching = true
config.public_file_server.enabled = true
config.log_level = :debug
config.log_tags = [ :request_id ]
config.action_mailer.perform_caching = false
config.i18n.fallbacks = true
config.active_support.deprecation = :notify
config.log_formatter = ::Logger::Formatter.new
if ENV["RAILS_LOG_TO_STDOUT"].present?
logger = ActiveSupport::Logger.new(STDOUT)
logger.formatter = config.log_formatter
config.logger = ActiveSupport::TaggedLogging.new(logger)
end
config.active_record.dump_schema_after_migration = false
end
Когда я запускаю RAILS_ENV=production bundle exec rake assets:precompile
, (думая, что я есть проблема с предварительной компиляцией). все компилируется так, как должно.
Наконец, мой application.rb
содержит только эту информацию.
require_relative 'boot'
require 'csv'
require 'rails/all'
# Require the gems listed in Gemfile, including any gems
# you've limited to :test, :development, or :production.
Bundler.require(*Rails.groups)
module DowntownInventoryApp
class Application < Rails::Application
config.assets.initialize_on_precompile = false
# Settings in config/environments/* take precedence over those specified here.
# Application configuration should go into files in config/initializers
# -- all .rb files in that directory are automatically loaded.
end
end
У кого-нибудь есть идеи, что я здесь упускаю или делаю неправильно?