Просто выполните последовательность шагов: удалите базу данных, затем заново создайте ее, перенесите данные, и, если у вас есть начальные значения, посейте базу данных:
rake db:drop db:create db:migrate db:seed
Поскольку среда по умолчанию для rake
- это разработка , в случае, если вы видите исключение в тестах спецификаций, вам следует заново создать db для среды test следующим образом:
RAILS_ENV=test rake db:drop db:create db:migrate
В большинстве случаев тестовая база данных высевается во время процедур тестирования, поэтому действие задачи db:seed
не требуется.В противном случае вы должны подготовить базу данных:
rake db:test:prepare
или
RAILS_ENV=test rake db:seed
Кроме того, чтобы использовать задачу пересоздать , которую вы можете добавить в Rakefile следующий код:
namespace :db do
task :recreate => [ :drop, :create, :migrate ] do
if ENV[ 'RAILS_ENV' ] !~ /test|cucumber/
Rake::Task[ 'db:seed' ].invoke
end
end
end
Тогда выдайте:
rake db:recreate