On Mon, Jan 2, 2012 at 10:49 PM, Linus Pettersson <
[email protected]> wrote:
> Hi!
>
> In Rails 3.1 there is only one method for migrations called 'change'.
>
Not exaclty. up and down still exist (but now instance methods instead of
class methods).
Google ("rails guide migrations").
>
> I want to run some code in a migration only when migrating up, not down.
> Is that possible?
>
Yes.
>
> The issue I have is that this code is inside a migration file from Active
> Admin:
>
> # Create a default user
> AdminUser.create!(:email => '[email protected]', :password => 'password',
> :password_confirmation
> => 'password')
>
> So, when I try to migrate down this will fail because there is already a
> user present.
>
And what about:
def up
AdminUser.create!(:email => '[email protected]
', :password => 'password', :password_confirmation => 'password')
end
def down
u = AdminUser.find_by_email('[email protected]')
u.destroy
end
> Any ideas?
>
If the down migration is really impossible to do (which can happen;
e.g because you miss data to reset everything to the original state)
than you can raise ActiveRecord::IrreversibleMigration exception
in the down migration.
HTH,
Peter
--
Peter Vandenabeele
http://twitter.com/peter_v
http://rails.vandenabeele.com
--
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.