web-dev-qa-db-fra.com

Est-ce que rake db: schema: dump recrée schema.rb à partir des migrations ou de la base de données elle-même?

Est-ce que

rake db:schema:dump

recréer schema.rb des migrations ou de la base de données elle-même?

57
pingu

La réponse est simple: à partir de la base de données.

Soit dit en passant - lorsque vous jetez un œil au code source des tâches db: * (.../activerecord/railties/databases.rake), vous pouvez voir que les tâches de migration appellent schema: dump après l'exécution

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

La migration fonctionne donc de la même manière qu'elle modifie la base de données et alors génère le fichier schema.rb.

83
Radek Paviensky