Wohl jeder Rails-Entwickler wird sich schon einmal darüber geärgert haben, bei Trivial-Migrationen neben dem up auch noch manuell ein down implementieren zu müssen - insbesondere dann, wenn das down nicht mehr macht als ein einfaches remove_column oder rename_table.
Rails 3.1 befreit uns von dieser Last.
down ausimplementieren. Rails kümmert sich um das Rollback, wenn man in der Migration einfach ein change schreibt:
class CreateDogs < ActiveRecord::Migration
def change
create_table :dogs do |t|
t.string :name
t.string :colour
t.timestamps
end
end
end
Im obigen Beispiel löscht Rails beim db:rollback automatisch die zuvor angelegte Tabelle dogs.
Lässt sich das down nicht automatisch berechnen, wird beim db:rollback eine IrreversibleMigration geworfen. Die Verwendung von change befreit uns also nicht von der Pflicht, auch das Rollback unserer Migrationen zu testen.
Kommentar schreiben