web-dev-qa-db-ja.com

rake db:schema:dumpは、移行またはデータベース自体からschema.rbを再作成しますか?

する

rake db:schema:dump

再作成schema.rb移行またはデータベース自体から?

57
pingu

答えは簡単です:データベースから。

ところで-db:*タスク(.../activerecord/railties/databases.rake)のソースコードを見ると、実行後に移行タスクがschema:dumpを呼び出していることがわかります。

desc "Migrate the database (options: VERSION=x, VERBOSE=false)."
task :migrate => :environment do
  ActiveRecord::Migration.verbose = ENV["VERBOSE"] ? ENV["VERBOSE"] == "true" : true
  ActiveRecord::Migrator.migrate("db/migrate/", ENV["VERSION"] ? ENV["VERSION"].to_i : nil)
  Rake::Task["db:schema:dump"].invoke if ActiveRecord::Base.schema_format == :Ruby
end

そのため、移行はデータベースを変更し、then schema.rbファイルを生成する方法で機能します。

83
Radek Paviensky