This blog is part of our Rails 6.1 series.
Rails 6.1 deprecates rails db:structure:load and rails db:structure:dump tasks.
Before Rails 6.1, executing rake db:schema:dump would dump db/schema.rb file. And executing rake db:structure:dump would dump db/structure.sql file.
Rails provides config.active_record.schema_format setting for which the valid values are :ruby or :sql. However, since there are specific tasks for db:structure and db:schema this value was not really being used.
Changes in Rails 6.1
In Rails 6.1 the Rails team decided to combine the two different tasks into a single task. In Rails 6.1 rails db:structure:dump and rails db:structure:load have been deprecated and the following message would be shown.
1Using `bin/rails db:structure:dump` is deprecated and will be removed in Rails 6.2. Configure the format using `config.active_record.schema_format = :sql` to use `structure.sql` and run `bin/rails db:schema:dump` instead.
Now Rails will start taking into the account value set for config.active_record.schema_format.
rails db:schema:dump and rails db:schema:load would do the right thing based on the value set for config.active_record.schema_format.
Check out the pull request for more details on this.