概要
原著者の許諾を得て翻訳・公開いたします。
- 英語記事: Rails deprecates `db:structure:load` and `db:structure:dump` tasks | Saeloun Blog
- 原文公開日: 2020/09/30
- 著者: Vamsi Pavan Mahesh
- サイト: Saeloun Blog | Ruby on Rails Consulting Company based in San Francisco and Boston
Rails: db:structure:load
とdb:structure:dump
タスクが非推奨化(翻訳)
Rails 6.1でdb:structure:load
タスクとdb:structure:dump
タスクが非推奨化されました(#39470)。
⚓ 変更前
config.active_record.schema_format
は、データベーススキーマをファイルにダンプするときのフォーマットを制御します。この設定で有効なオプションは:ruby
(デフォルト)と:sql
です。
rails db:schema:{dump,load}
を実行するとdb/schema.rbファイルをダンプdb/schema.rbファイルをダンプまたは読み込みます。rails db:structure:{dump.load}
を実行すると、config.active_record.schema_format
で指定した値にかかわらずdb/structure.sqlファイルをダンプまたは読み込みます。
⚓ 変更後
rails db:schema:{dump,load}
コマンドとrails db:structure:{dump,load}
コマンドのどちらを実行した場合にも、config.active_record.schema_format
で指定した値に応じてrails db:schema:{dump,load}
が実行されるようになります。
つまり、rails db:schema:dump
またはrails db:structure:dump
を実行すると、db/schema.rb
ファイルをダンプします。
config.active_record.schema_format
で:sql
という値を指定してrails db:schema:dump
またはrails db:structure:dump
を実行すると、db/stucture.sql
ファイルをダンプします。
rails db:structure:{dump,load}
を実行すると非推奨の警告が表示されます(これらのコマンドはRails 6.2で削除される予定です)。
DEPRECATION WARNING: Using `bin/rails db:structure:load` 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:load` instead
注意: 上の非推奨メッセージを表示するには、config.active_support.deprecation = :stderr
を設定しておく必要があります。