If I manually drop the database, and run create, then migrate it works fine.
But doing a:
rake db:reset
it fails with:
unknown attribute: user_status
Does this mean my migrations are not dropping things correctly?
If I manually drop the database, and run create, then migrate it works fine.
But doing a:
rake db:reset
it fails with:
unknown attribute: user_status
Does this mean my migrations are not dropping things correctly?
I believe that rake db:reset re-creates the db and loads the schema from schema.rb rather than running the migrations [1]. Is there something odd in schema.rb, possibly related to user_status?
[1] Active Record Migrations — Ruby on Rails Guides
Colin
Colin Law wrote in post #1047551:
It would be nice if there was a way to mirror things to RAILS_ENV=test also.
I hate having to do it for both.
First thing to do seems to check with --trace.
$ rake --trace db:reset
and study the order of execution of rake tasks in detail until the
point where it fails …
HTH,
Peter
Why doesn’t rake -T show db:reset? Where can I find a list of these hidden rake commands?
Why doesn’t rake -T show db:reset?
Because the desc
is not defined or is commented out.
Where can I find a list of these hidden rake commands?
Checking these files could help you. The migration tasks are
in the first one.
peterv@ASUS:~/b/github/rails/rails$ find . -name ‘*.rake’
./activerecord/lib/active_record/railties/databases.rake
./actionpack/lib/sprockets/assets.rake
./railties/lib/rails/tasks/framework.rake
./railties/lib/rails/tasks/log.rake
./railties/lib/rails/tasks/tmp.rake
./railties/lib/rails/tasks/annotations.rake
./railties/lib/rails/tasks/routes.rake
./railties/lib/rails/tasks/middleware.rake
./railties/lib/rails/tasks/engine.rake
./railties/lib/rails/tasks/documentation.rake
./railties/lib/rails/tasks/misc.rake
./railties/lib/rails/tasks/statistics.rake
./railties/lib/rails/generators/rails/plugin_new/templates/lib/tasks/%name%_tasks.rake
./railties/lib/rails/test_unit/testing.rake
As you will see, some tasks have no desc
above them,
or the desc
is commented out (probably because it is
not intended as a public available command).
E.g. rake db:reset
is defined as such:
db_namespace = namespace :db do
…
ironment and loads the seeds.’
task :reset => :environment do
db_namespace[“drop”].invoke
db_namespace[“setup”].invoke
end
…
end
with the desc
commented out.
and rake db:migrate:reset
as such:
db_namespace = namespace :db do
…
namespace :migrate do
…
task :reset => [‘db:drop’, ‘db:create’, ‘db:migrate’]
…
end
…
end
HTH,
Peter