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.
Follow @bigbinary on X. Check out our full blog archive.