Создает ли rake db: schema: dump воссоздание schema.rb из миграции или из самой базы данных? - PullRequest
56 голосов
/ 28 сентября 2010

Восстанавливает ли

rake db:schema:dump

schema.rb из миграций или самой базы данных?

1 Ответ

82 голосов
/ 28 сентября 2010

Ответ прост: из базы данных.

Кстати - когда вы посмотрите на исходный код db: * tasks (... / activerecord / railties / database.rake) выможно увидеть, что задачи миграции вызывают схему: 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

Таким образом, миграция работает так, как она меняет базу данных и , а затем генерирует файл schema.rb.

...