Tech Racho エンジニアの「?」を「!」に。
  • Ruby / Rails関連

Rails: db:structure:loadとdb:structure:dumpタスクが非推奨化(翻訳)

概要

原著者の許諾を得て翻訳・公開いたします。

Rails: db:structure:loaddb: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を設定しておく必要があります。

関連記事

Rails: db:migrate:nameコマンドの振る舞いの変更(翻訳)


CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。