Wow.
Thank you Rick.  Very nice explanation.
Yeah, I dropped the columns by raking 'down' and have also deleted
that migration, so I think I'm good to go now.  Also, I don't use
textmate, but yeah, I made sure that the "down" migration removed all
the columns the "up" created.

Thank you again Mr. Rick


On Apr 7, 10:36 am, Rick DeNatale <[email protected]> wrote:
> On Tue, Apr 6, 2010 at 11:29 PM, Ryan Waldron <[email protected]> wrote:
> > You'll also need to remove that migration's entry from the
> > 'schema_migrations' table.  That's how Rails keeps up with what
> > migrations exist, and whether it's done them all.
>
> Running rake db:migrate:down VERSION=XXX should remove the entry.
>
> Otherwise rake db:migrate wouldn't run the migration again.  A normal
> use case for migrate down is:
>
> rake db:migrate
>
> #oops something was wrong in migration 123456
> rake db:migrate:down VERSION=123456
> edit db/migrate/123456_whatever_it_does
> rake db:migrate
>
> > On Tue, Apr 6, 2010 at 10:10 PM, GoodGets <[email protected]> wrote:
> >> What exactly does rake db:migrate:down VERSION=XXX do?  I understand
> >> that it runs the "down" migration, completely removing any columns/
> >> tables that migration may have created,
>
> Well it does whatever YOU told it to in the down part of the
> migration. It's up to you (or whatever you use to edit/generate the
> migration) to write the correct code there.
>
> I tend to use Textmate snippets from the rails bundle to do
> migrations, and the table/column migration snippets will generate
> 'undo' code in the down migration when you expand them in the up
> migration.  But YMMV depending on what tools you use.
>
> >> but does this mean that I can
> >> can delete these migration files as well?  I'd like for Rails to have
> >> no knowledge of their existence.  (I was allowing user profile pics
> >> with Paperclip, but have since decided to just use their Gravatars.)
> >> I know you can delete a migration, and even delete those columns from
> >> the schema, but Rails still "remembers" these changes and just updates
> >> them the next time you rake db:migrate.  So, I'd like to completely
> >> rid my app of a particular migration, is rake db:migrate:down then
> >> deleting that migration from the migrate folder the way to do it?
>
> When you do rake db:migration  the rake task looks for migrations
> under db/migrate which don't have entries in the schema_migrations
> table, and runs those (actually I think it's a bit more subtle than
> that, there's been discussion of a 'bug' which can make the task
> ignore migrations with a timestamp older than the newest one in
> schema_migrations, which can keep migrations merged from another
> branch NOT to be run.  But...
>
> If you run
>
> rake db:migrate:down  version=XXX
>
> and then remove the file db/migrate/XXX_whatever from your source, the
> rake task won't see it and it will be gone.
>
> --
> Rick DeNatale
>
> Blog:http://talklikeaduck.denhaven2.com/
> Github:http://github.com/rubyredrick
> Twitter: @RickDeNatale
> WWR:http://www.workingwithrails.com/person/9021-rick-denatale
> LinkedIn:http://www.linkedin.com/in/rickdenatale

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to