简体   繁体   中英

DB migrate fails in production on Heroku

I'm attempting to run heroku run rake db:migrate on my production app, but am running into the following error -

heroku run rake db:migrate
Running rake db:migrate on ⬢ thesenumbersmatter... up, run.9613
/app/bin/bundle: line 1: syntax error near unexpected token `('
/app/bin/bundle: line 1: `ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)'

Here's a snapshot of my Heroku logs -

2016-07-25T21:10:00.983053+00:00 heroku[web.1]: Process exited with status 0
2016-07-25T21:10:04.570431+00:00 heroku[web.1]: Starting process with command `bundle exec puma -C config/puma.rb`
2016-07-25T21:10:06.571961+00:00 app[web.1]: /app/bin/bundle: line 1: `ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)'
2016-07-25T21:10:06.571944+00:00 app[web.1]: /app/bin/bundle: line 1: syntax error near unexpected token `('
2016-07-25T21:10:06.658238+00:00 heroku[web.1]: Process exited with status 2
2016-07-25T21:10:06.644327+00:00 heroku[web.1]: State changed from crashed to starting
2016-07-25T21:10:06.643399+00:00 heroku[web.1]: State changed from starting to crashed
2016-07-25T21:10:12.115987+00:00 heroku[web.1]: Starting process with command `bundle exec puma -C config/puma.rb`
2016-07-25T21:10:13.691797+00:00 app[web.1]: /app/bin/bundle: line 1: syntax error near unexpected token `('
2016-07-25T21:10:13.691814+00:00 app[web.1]: /app/bin/bundle: line 1: `ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)'
2016-07-25T21:10:13.748988+00:00 heroku[web.1]: Process exited with status 2
2016-07-25T21:10:40.708442+00:00 heroku[api]: Starting process with command `bundle exec rake db:migrate` by tomalhossain@gmail.com
2016-07-25T21:10:48.439887+00:00 heroku[run.8272]: Awaiting client
2016-07-25T21:10:48.469049+00:00 heroku[run.8272]: Starting process with command `bundle exec rake db:migrate`
2016-07-25T21:10:48.680222+00:00 heroku[run.8272]: State changed from starting to up
2016-07-25T21:10:50.599637+00:00 heroku[run.8272]: Process exited with status 2
2016-07-25T21:10:50.622277+00:00 heroku[run.8272]: State changed from up to complete
2016-07-25T21:21:32.953192+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=thesenumbersmatter.herokuapp.com request_id=226e241c-763b-4fcb-985a-c71ef6d8ccaa fwd="209.155.210.42" dyno= connect= service= status=503 bytes=
2016-07-25T21:21:33.255547+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=thesenumbersmatter.herokuapp.com request_id=20f7db1b-7fb0-47dc-ad61-726cde0b1883 fwd="209.155.210.42" dyno= connect= service= status=503 bytes=
2016-07-25T21:22:39.707138+00:00 heroku[api]: Starting process with command `bundle exec rake db:migrate` by tomalhossain@gmail.com
2016-07-25T21:22:46.341944+00:00 heroku[run.2340]: Awaiting client
2016-07-25T21:22:46.378195+00:00 heroku[run.2340]: Starting process with command `bundle exec rake db:migrate`
2016-07-25T21:22:46.344312+00:00 heroku[run.2340]: State changed from starting to up
2016-07-25T21:22:48.286888+00:00 heroku[run.2340]: Process exited with status 2
2016-07-25T21:22:48.300483+00:00 heroku[run.2340]: State changed from up to complete
2016-07-25T21:30:27.247935+00:00 heroku[api]: Starting process with command `bash` by tomalhossain@gmail.com
2016-07-25T21:30:33.624786+00:00 heroku[run.7831]: Awaiting client
2016-07-25T21:30:33.656346+00:00 heroku[run.7831]: Starting process with command `bash`
2016-07-25T21:30:33.804038+00:00 heroku[run.7831]: State changed from starting to up
2016-07-25T21:34:39.761952+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=thesenumbersmatter.herokuapp.com request_id=45451b08-447b-4e05-851b-ce5f092a0f22 fwd="40.141.196.170" dyno= connect= service= status=503 bytes=

Here's my Gemfile -

source 'https://rubygems.org'

gem 'rails', '4.2.6'
gem 'puma'
gem 'pg'
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.1.0'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 2.0'
gem 'sdoc', '~> 0.4.0', group: :doc
gem 'activeadmin', github: 'activeadmin'
gem 'active_material', github: 'vigetlabs/active_material'
gem 'devise'
gem 'cancan'
gem 'draper'
gem 'pundit'
gem 'foreman'
gem 'browserify-rails'
gem 'simplest_photo', github: 'vigetlabs/simplest_photo'
gem 'colonel_kurtz_ruby'

group :development, :test do
  gem 'pry'
  gem 'pry-doc'
end

group :development do
  gem 'web-console', '~> 2.0'
  gem 'spring'
end

group :test do
  gem 'rspec-rails'
  gem 'shoulda-matchers'
  gem 'guard-rspec'
  gem 'capybara'
  gem 'launchy'
end

group :production do
  gem 'rails_12factor'
end

My app is using both heroku/nodejs and heroku/ruby buildpacks, as I've got React components rendering certain components on my homepage. I'm relatively new to RoR and this is my first StackOverflow question, so I apologize for anything I've missed out. I've also just noticed that running rails -v within a bash prompt on the heroku server returns the following, so I assume something is fundamentally wrong. -

Running bash on ⬢ thesenumbersmatter... up, run.6069
~ $ rails -v
/app/bin/rails: line 1: begin: command not found
/app/bin/rails: line 2: syntax error near unexpected token `('
/app/bin/rails: line 2: `  load File.expand_path('../spring', __FILE__)'

Thank you for your help!


Edit: Here's my Puma configuration file.

workers Integer(ENV['WEB_CONCURRENCY'] || 2)
threads_count = Integer(ENV['RAILS_MAX_THREADS'] || 5)
threads threads_count, threads_count

preload_app!

rackup      DefaultRackup
port        ENV['PORT']     || 3000
environment ENV['RACK_ENV'] || 'development'

on_worker_boot do
  ActiveRecord::Base.establish_connection
end

So, it turns out that all of the files in my app's bin directory (bundle, rails, rake, setup, spring) were missing the following line at the top -

#!/usr/bin/env ruby

I have no idea why that line was missing, but all I know is that it was messing up the site from functioning in production. Thank you all for your help.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM