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.
# create the database
rails db:create
# run the migrations
rails db:migrate
# prepopulate the database with initial/default data
rails db:seed
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:
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.
If this blog was helpful, check out our full blog archive.