structure.sqlを使いたい!
はじめに
Railsではdb:migrateすると、デフォルトでdb/schema.rbを生成されて、このファイルでスキーマ管理をしてくれます。
しかし、ユニークインデックスにwhereを付けるようなRDB固有の命令については、Rails標準のschema.rbで管理し続けるのは限界があるのではないかという問題点があります。
それを解決してくれるのがstructure.sql
で、SQLでスキーマ情報を管理することも可能です。
structure.sql生成方法
config/application.rb
に以下を記述して、rails db:migrate
を実行することで生成されます。
config.active_record.schema_format = :sql # デフォルトでは「:ruby」となっています
structure.sqlをロードする
生成されたstructure.sqlファイルは、下記のコマンドでデータベースへロードできます。
$ rails db:structure:load
SQLファイルだけ欲しい場合
SQLダンプファイルのみが欲しい場合は、下記コマンドでstructure.sqlのみを生成することができます。
$ rails db:structure:dump
注意点
migrationファイルに基づいてstructure.sqlは更新されていくので、中身を変更したい時は手動では無くrails db:migrate:reset
などでmigrationを実行し直す。
終わりに
最近では、structure.sqlでスキーマ管理することも増えてきている?っぽいので、どういったものか?ということくらいは掴んでおいた方がいいかもしれないですね!
Author And Source
この問題について(structure.sqlを使いたい!), 我々は、より多くの情報をここで見つけました https://qiita.com/ren0826jam/items/a683816a2f754523e613著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .