- 公開日
SQLファイルによるRails DBスキーマ管理
Railsではdb:migrate
すると、デフォルトでdb/schema.rb
を生成しますが、SQLでスキーマ情報を管理することも可能です。下記のようにconfig/application.rb
内でactive_record.schema_format
を:sql
と設定することで可能になります(デフォルト値は:ruby
)。
# config/application.rb
module RailsApp
class Application < Rails::Application
config.active_record.schema_format = :sql
end
end
これでdb/migrate
するとデフォルトのschema.rb
ではなく、db/structure.sql
というSQLファイルを吐きます。
structure.sqlをロードする
生成されたstructure.sql
ファイルは、下記のコマンドでデータベースへロードできます。
$ rails db:structure:load
SQLファイルだけ欲しい場合
SQLダンプファイルのみが欲しい場合は、config.active_record.schema_format
の設定を変えずとも下記コマンドでstructure.sql
のみを生成することができます。
$ rails db:structure:dump