As already noted, your default scopes are tripping you up. There's a better way to avoid this sort of issue in your migrations: redefine your model in the scope of the migration:
class MigrateFooToBar < ActiveRecord::Migration
class Foo < ActiveRecord::Base; end
def up
# ...
end
end
When you then reference Foo
from within up
you reference the void-of-restrictions-and-default-scopes MigrateFooToBar::Foo
which keeps you migrations from A) having to know too much about your models and B) confusing everybody else on your team when they run your migrations.