Ruby on rails 3 主动管理回滚:“主动管理回滚”;验证失败:电子邮件已被接收;

Ruby on rails 3 主动管理回滚:“主动管理回滚”;验证失败:电子邮件已被接收;,ruby-on-rails-3,rollback,activeadmin,rails-migrations,Ruby On Rails 3,Rollback,Activeadmin,Rails Migrations,我正在Rails 3.1.3中启动一个带有postgresql后端的项目 我生成了一些模型,然后添加了活动管理gem。 过了一会儿,我决定合并两个模型,并希望回滚到开头,以便删除一个模型并使用正确的模式重新启动迁移 我键入: rake db:rollback step=10 当它中止回滚时,它很好地运行到活动管理位: $ rake db:rollback == DeviseCreateAdminUsers: reverting ================================

我正在Rails 3.1.3中启动一个带有postgresql后端的项目

我生成了一些模型,然后添加了活动管理gem。 过了一会儿,我决定合并两个模型,并希望回滚到开头,以便删除一个模型并使用正确的模式重新启动迁移

我键入:

rake db:rollback step=10
当它中止回滚时,它很好地运行到活动管理位:

$ 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
我没有添加任何用户,因此这可能是admin@example.com”“算了

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'

您是如何分两个阶段完成10步回滚的?你提出的问题有点不明确,很难给你一个好的答案。除了告诉你这条信息

我建议您检查所有迁移,以确定是否存在错误

AdminUser.create

声明。您可能还希望使用rails控制台手动删除AdminUser。

在回滚之前运行
rake db:reset

designe\u create\u admin\u users迁移在migrate:up时创建默认用户,但在回滚/migrate:down时再次尝试创建它。因此验证错误,因为电子邮件已经存在


只需注释掉“AdminUser.create!”在回滚之前,然后在回滚时取消对它的注释。

是否解决了此问题?有同样的问题。。。