Является ли rake db: schema: dump воссоздавать schema.rb из миграций или самой базы данных?
ли
rake db:schema:dump
воссоздать schema.rb из миграций или самой базы данных?
Ответ 1
Ответ прост: из базы данных.
Кстати, когда вы заглядываете в исходный код db: * tasks (.../activerecord/railties/databases.rake), вы можете видеть, что задачи миграции вызывают схему: дамп после запуска
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.