Hack Your Design!

SQLファイルでRailsのスキーマ情報管理

Railsではdb:migrateすると、デフォルトでdb/schema.rbを生成しますが、SQLでスキーマ情報を管理することも可能です。下記のようにconfig/application.rb内でactive_record.schema_format:sqlと設定することで可能になります(デフォルト値は:ruby)。

# config/application.rb
module Rails4TwitterClone
  class Application < Rails::Application
    config.active_record.schema_format = :sql
  end
end

これでdb/migrateするとデフォルトのschema.rbではなく、db/structure.sqlというSQLファイルを吐きます。

structure.sqlをロードする

生成されたstructure.sqlファイルは、下記のコマンドでデータベースへロードできます。

rake db:structure:load

SQLファイルだけ欲しい場合

sqlダンプファイルのみが欲しい場合は、config.active_record.schema_formatの設定を変えずとも下記コマンドでstructure.sqlを生成することができます。

rake db:structure:dump

参考

  • このエントリーをはてなブックマークに追加
comments powered by Disqus