rails迁移版本问题:任何新迁移都无法正常工作

时间:2012-02-03 05:35:35

标签: ruby-on-rails devise rails-migrations

从今天早上起,我面临着Rails设计的奇怪问题。以下是my ls和rake db version命令的输出。

hrishikesh@hrishikesh-ubuntu:~/git-public/personaldiary/db/migrate$ ls -1
20120110083934_devise_create_users.rb
20120110090514_create_posts.rb
20120110090845_add_user_id_to_post.rb
20120203035323_add_confirmable_to_devise.rb
20120203035323_add_confirmable_to_devise.rb~
20120203043601_add_lockable_to_devise.rb
20120203043601_add_lockable_to_devise.rb~
hrishikesh@hrishikesh-ubuntu:~/git-public/personaldiary/db/migrate$ rake db:version
(in /home/hrishikesh/git-public/personaldiary)
DEPRECATION WARNING: require "activerecord" is deprecated and will be removed in Rails 3. Use require "active_record" instead. (called from /usr/lib/ruby/vendor_ruby/activerecord.rb:2)
Current version: 20120203034555
hrishikesh@hrishikesh-ubuntu:~/git-public/personaldiary/db/migrate$ 

如果我尝试添加任何新的迁移,请使用rake db:migrate throws错误,该错误告诉我某些列已经存在,并且失败。

我失败的迁移代码在这里:

class AddConfirmableToDevise < ActiveRecord::Migration
  def change
    change_table(:users) do |t|
      t.confirmable
    end
    add_index :users, :confirmation_token,   :unique => true
  end
end

由于this

,我特别不想使用up和down方法

请帮忙。

1 个答案:

答案 0 :(得分:2)

花了几个小时寻找解决方案后,我决定放弃并运行

rake db:migrate:reset

它起作用了,唯一的问题是我的数据丢失了,此时此刻并没有那么重要。

感谢大家试图解决这个问题。