DaveyGravy
DaveyGravy

Reputation: 21

Ruby on Rails Migrations and Moving Up and Down Basics

I took a couple courses on rails but a few things are unclear to me regarding migrations:

1.) If I generate a migrations and run it, no matter how few operations I perform does rails still create a whole entirely new version of my schema? Is there anyway to view each version's schema before migrations back down?

2.) If I do not define the down method in a migration and I try and rollback, will the rollback do nothing?

3.) Should I delete migrations after I run them?

Upvotes: 0

Views: 123

Answers (2)

Tony Hopkinson
Tony Hopkinson

Reputation: 20320

Migrate does incremental changes to your schema. It knows (unless you stuff it up) what state your schema is in and runs those migrations that haven't yet been run. e.g. if you do a drop create and migrate and then migrate a second time, the second one does nothing, because they've all be done.

No down indeed means rollback will do nothing.

The only time you should delete a migration is if you are completely undoing a change. ie you added a model and then decided you didn't need it.

Any other approach would mean you couldn't achieve your schema from scratch. e.g. you add a model and migrate then you realise you need a relation and do that. delete the migration that added the table, things go horribly wrong.

Upvotes: 0

Mostafa Hussein
Mostafa Hussein

Reputation: 11950

you dont need to delete the migration file after migrate if you run a migrate to create a table without defining a down method , if you tried rake db:rollback it will revert the last migrate you did , you can see more in here Migration

Upvotes: 0

Related Questions