Final result: automatically run migrations right when app is deployed!

heroku procfile

The Problem

When you deploy to production, afterwards you most likely write a console command like heroku run rails db:migrate, right?

Well, there’s the Procfile - a file where you list commands that should be run on deploy. Heroku automatically scans for it.

For other platforms (not heroku) you might need a tool like foreman.

How to use:

  1. Create a file named Procfile in your application root folder

  2. Inside Procfile add these lines to run migrations right when the app gets deployed:

    web: bundle exec rails s
    release: rails db:migrate
    

Bonus: also start sidekiq on deploy

Procfile

web: bundle exec rails s
worker: bundle exec sidekiq -c 2
release: rails db:migrate