Откат активного администратора: проверка не удалась: электронная почта уже принята

Я начинаю проект в Rails 3.1.3 с бэкэндом postgresql.

Я создал несколько моделей, а затем добавил гем Active Admin. Чуть позже я решил, что нужно объединить 2 модели, и хотел откатиться к началу, чтобы удалить одну модель и перезапустить миграцию с правильной схемой.

я набрал:

rake db:rollback step=10

Это дошло до бита Active Admin, когда он прервал откат:

$ rake db:rollback
==  DeviseCreateAdminUsers: reverting =========================================
rake aborted!
An error has occurred, this and all later migrations canceled:

Validation failed: Email has already been taken

Tasks: TOP => db:rollback

Я не добавлял пользователей, так что, вероятно, это учетная запись [email protected].

Gemfile

source 'http://rubygems.org'

gem 'rails', '3.1.3'

gem 'pg'
gem 'json'
gem 'activeadmin'
gem 'sass-rails',   '~> 3.1.5'
gem 'meta_search',    '>= 1.1.0.pre'
gem "paperclip", :git => "git://github.com/thoughtbot/paperclip.git"
gem 'mechanize'

# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'less-rails-bootstrap'
  gem 'coffee-rails', '~> 3.1.1'
  gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-rails'

person Fred Fickleberry III    schedule 27.12.2011    source источник
comment
ты исправил это? возникла такая же проблема...   -  person Lukas Hoffmann    schedule 23.01.2012


Ответы (3)


Как именно вы делали откат на 10 шагов, в 2 этапа? Вопрос, который вы задаете, немного недоработан, трудно дать вам хороший ответ. Помимо указания на эту информацию

http://en.wikibooks.org/wiki/Ruby_on_Rails/ActiveRecord/Migrations#Managing_Migrations

Я предлагаю вам проверить все ваши миграции для

AdminUser.create

утверждение. Вы также можете вручную удалить AdminUser с помощью консоли rails.

person Sjors Branderhorst    schedule 12.01.2012

выполнить rake db:reset перед откатом.

person Lukas Hoffmann    schedule 23.01.2012

Миграция devise_create_admin_users создает пользователя по умолчанию при migrate:up, но затем пытается создать его снова при rollback/migrate:down. Следовательно, ошибка проверки, поскольку электронная почта уже существует.

Просто закомментируйте 'AdminUser.create!' перед откатом, а затем раскомментируйте его при откате.

person tomek    schedule 29.06.2012