- 公開日
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