Rails 6 adds rails db:prepare to migrate or setup a database

Akhil Gautam

By Akhil Gautam

on December 10, 2019

This blog is part of our  Rails 6 series.

Rails 6 adds rails db:prepare to migrate or setup a database if it doesn't exist.

Before Rails 6, we had to run the following tasks to set up the database.

1# create the database
2rails db:create
3
4# run the migrations
5rails db:migrate
6
7# prepopulate the database with initial/default data
8rails db:seed

Rails 6

Rails 6, adds rails db:prepare to get rid of running all the above tasks individually. rails db:prepare first calls the migrate to run the migrations, but if the database doesn't exist, migrate throws an ActiveRecord::NoDatabaseError. Once it is catched, it performs the following operations:

  • Creates the database.
  • Loads the schema.
  • Seeds the database.

Thus, rails db:prepare saves a lot of time spent on running database tasks individually while setting up an application and finishes it with just one command.

Here is the relevant pull request.

Stay up to date with our blogs. Sign up for our newsletter.

We write about Ruby on Rails, ReactJS, React Native, remote work,open source, engineering & design.