每次我尝试打开 Heroku 应用程序时都会崩溃

Heroku app crashes every time I try to open

我正在尝试使用 Heroku 部署我的应用程序。我想我已经成功部署了它,但是每次我尝试在浏览器上打开我的应用程序时,它都显示...

Application error An error occurred in the application and your page could not be served. If you are the application owner, check your logs for details

当我输入 heroku logs 时,我得到...

2017-07-15T14:20:37.334994+00:00 heroku[web.1]: State changed from starting to crashed
2017-07-15T14:20:38.012558+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=deucex.herokuapp.com request_id=8a0d5560-e3bb-4cc2-82c3-9258db8eacb5 fwd="98.26.96.65" dyno= connect= service= status=503 bytes= protocol=https

我知道我的应用程序崩溃了,但我不知道为什么。我尝试输入 heroku restart,但没有用。我也尝试查找这个问题,但没有成功。我该怎么办?

======更新=====

当我输入:

$ heroku run rake db:create

我收到以下错误:

FATAL:  permission denied for database "postgres"
DETAIL:  User does not have CONNECT privilege.
Couldn't create database for {"adapter"=>"postgresql", "encoding"=>"unicode", "pool"=>5, "database"=>"dd9p7e3qfv5v6k", "username"=>"dzkwulhdubxmkt", "password"=>"e3864a3452e40eb2586d5fc2f6052dd9e85e8fd59804151c4701ae046743e4a8", "port"=>5432, "host"=>"ec2-23-23-244-83.compute-1.amazonaws.com"}
rake aborted!
PG::ConnectionBad: FATAL:  permission denied for database "postgres"
DETAIL:  User does not have CONNECT privilege.
/app/vendor/bundle/ruby/2.3.0/gems/pg-0.20.0/lib/pg.rb:56:in `initialize'
/app/vendor/bundle/ruby/2.3.0/gems/pg-0.20.0/lib/pg.rb:56:in `new'
/app/vendor/bundle/ruby/2.3.0/gems/pg-0.20.0/lib/pg.rb:56:in `connect'
/app/vendor/bundle/ruby/2.3.0/gems/activerecord-5.1.1/lib/active_record/connection_adapters/postgresql_adapter.rb:701:in `connect'
/app/vendor/bundle/ruby/2.3.0/gems/activerecord-5.1.1/lib/active_record/connection_adapters/postgresql_adapter.rb:220:in `initialize'
/app/vendor/bundle/ruby/2.3.0/gems/activerecord-5.1.1/lib/active_record/connection_adapters/postgresql_adapter.rb:38:in `new'
/app/vendor/bundle/ruby/2.3.0/gems/activerecord-5.1.1/lib/active_record/connection_adapters/postgresql_adapter.rb:38:in `postgresql_connection'
/app/vendor/bundle/ruby/2.3.0/gems/activerecord-5.1.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:759:in `new_connection'
/app/vendor/bundle/ruby/2.3.0/gems/activerecord-5.1.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:803:in `checkout_new_connection'
/app/vendor/bundle/ruby/2.3.0/gems/activerecord-5.1.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:782:in `try_to_checkout_new_connection'
/app/vendor/bundle/ruby/2.3.0/gems/activerecord-5.1.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:743:in `acquire_connection'
/app/vendor/bundle/ruby/2.3.0/gems/activerecord-5.1.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:500:in `checkout'
/app/vendor/bundle/ruby/2.3.0/gems/activerecord-5.1.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:374:in `connection'
/app/vendor/bundle/ruby/2.3.0/gems/activerecord-5.1.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:931:in `retrieve_connection'
/app/vendor/bundle/ruby/2.3.0/gems/activerecord-5.1.1/lib/active_record/connection_handling.rb:116:in `retrieve_connection'
/app/vendor/bundle/ruby/2.3.0/gems/activerecord-5.1.1/lib/active_record/connection_handling.rb:88:in `connection'
/app/vendor/bundle/ruby/2.3.0/gems/activerecord-5.1.1/lib/active_record/tasks/postgresql_database_tasks.rb:10:in `connection'
/app/vendor/bundle/ruby/2.3.0/gems/activerecord-5.1.1/lib/active_record/tasks/postgresql_database_tasks.rb:19:in `create'
/app/vendor/bundle/ruby/2.3.0/gems/activerecord-5.1.1/lib/active_record/tasks/database_tasks.rb:117:in `create'
/app/vendor/bundle/ruby/2.3.0/gems/activerecord-5.1.1/lib/active_record/tasks/database_tasks.rb:137:in `block in create_current'
/app/vendor/bundle/ruby/2.3.0/gems/activerecord-5.1.1/lib/active_record/tasks/database_tasks.rb:304:in `block in each_current_configuration'
/app/vendor/bundle/ruby/2.3.0/gems/activerecord-5.1.1/lib/active_record/tasks/database_tasks.rb:303:in `each'
/app/vendor/bundle/ruby/2.3.0/gems/activerecord-5.1.1/lib/active_record/tasks/database_tasks.rb:303:in `each_current_configuration'
/app/vendor/bundle/ruby/2.3.0/gems/activerecord-5.1.1/lib/active_record/tasks/database_tasks.rb:136:in `create_current'
/app/vendor/bundle/ruby/2.3.0/gems/activerecord-5.1.1/lib/active_record/railties/databases.rake:27:in `block (2 levels) in <top (required)>'
/app/vendor/bundle/ruby/2.3.0/gems/rake-12.0.0/exe/rake:27:in `<top (required)>'
/app/vendor/bundle/ruby/2.3.0/gems/bundler-1.15.1/lib/bundler/cli/exec.rb:74:in `load'
/app/vendor/bundle/ruby/2.3.0/gems/bundler-1.15.1/lib/bundler/cli/exec.rb:74:in `kernel_load'
/app/vendor/bundle/ruby/2.3.0/gems/bundler-1.15.1/lib/bundler/cli/exec.rb:27:in `run'
/app/vendor/bundle/ruby/2.3.0/gems/bundler-1.15.1/lib/bundler/cli.rb:360:in `exec'
/app/vendor/bundle/ruby/2.3.0/gems/bundler-1.15.1/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/app/vendor/bundle/ruby/2.3.0/gems/bundler-1.15.1/lib/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
/app/vendor/bundle/ruby/2.3.0/gems/bundler-1.15.1/lib/bundler/vendor/thor/lib/thor.rb:369:in `dispatch'
/app/vendor/bundle/ruby/2.3.0/gems/bundler-1.15.1/lib/bundler/cli.rb:20:in `dispatch'
/app/vendor/bundle/ruby/2.3.0/gems/bundler-1.15.1/lib/bundler/vendor/thor/lib/thor/base.rb:444:in `start'
/app/vendor/bundle/ruby/2.3.0/gems/bundler-1.15.1/lib/bundler/cli.rb:10:in `start'
/app/vendor/bundle/ruby/2.3.0/gems/bundler-1.15.1/exe/bundle:35:in `block in <top (required)>'
/app/vendor/bundle/ruby/2.3.0/gems/bundler-1.15.1/lib/bundler/friendly_errors.rb:121:in `with_friendly_errors'
/app/vendor/bundle/ruby/2.3.0/gems/bundler-1.15.1/exe/bundle:27:in `<top (required)>'
/app/bin/bundle:3:in `load'
/app/bin/bundle:3:in `<main>'
Tasks: TOP => db:create
(See full trace by running task with --trace)

===== 更新 ========

当我尝试 运行:

$ rails server -b $IP -p $PORT

我得到:

ActiveRecord::NoDatabaseError FATAL: database "sale_development" does not exist

这是我的database.yml代码

# SQLite version 3.x
#   gem install sqlite3
#
#   Ensure the SQLite 3 gem is defined in your Gemfile
#   gem 'sqlite3'
#
default: &default
  adapter: postgresql
  encoding: unicode
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>

development:
  <<: *default
  database: sale_development

test:
  <<: *default
  database: sale_test

production:
  <<: *default
  database: sale_production
  username: sale
  password: <%= ENV['SALE_DATABASE_PASSWORD'] %>

显然 sale_development 确实存在。销售是我的应用程序的名称。为什么说不存在?

Gem 文件

source 'https://rubygems.org'

git_source(:github) do |repo_name|
  repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/")
 "https://github.com/#{repo_name}.git"
 end


# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '~> 5.1.1'
# Use sqlite3 as the database for Active Record

#gem 'sqlite3'
gem 'pg'
# Use Puma as the app server
gem 'puma', '~> 3.7'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 5.0'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# See https://github.com/rails/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby

# Use CoffeeScript for .coffee assets and views
gem 'coffee-rails', '~> 4.2'
# Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks
gem 'turbolinks', '~> 5'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.5'
# Use Redis adapter to run Action Cable in production
# gem 'redis', '~> 3.0'
# Use ActiveModel has_secure_password
# gem 'bcrypt', '~> 3.1.7'
gem 'bootstrap-sass'
gem "paperclip", "~> 5.0.0"
gem 'devise', '~> 4.3'
gem 'will_paginate', '~> 3.0'


# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development

group :development, :test do
  # Call 'byebug' anywhere in the code to stop execution and get a debugger console
  gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
  gem 'pg'
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'
  gem 'listen', '>= 3.0.5', '< 3.2'
  # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
  gem 'spring'
  gem 'spring-watcher-listen', '~> 2.0.0'
  gem 'pg'
end

# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
gem 'rails_12factor', group: :production

你创建数据库了吗?
尝试 heroku run rake db:createheroku run rails db:create,然后迁移。

您收到消息 sale_development 不存在,因为当您推送到 heroku 时,它会在生产环境中启动您的应用程序,对于生产环境,您有另一个数据库。

Edited

当我查看 heroku 日志时,我发现 /app/vendor/bundle/ruby/2.3.0/gems/activesupport-5.1.1/lib/active_support/dependencies.rb:292:in require': No such file to load -- test_helper.rb (LoadError) 错误。
Here already fix same error