проблема версии миграции rails: любая новая миграция не работает - PullRequest
2 голосов
/ 03 февраля 2012

С этого утра я столкнулся со странными проблемами с разработкой Rails.Ниже приведен вывод моей команды 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 выдает ошибку, которая сообщает мне, что какой-то столбец уже существует, и завершается неудачей.

Мой ошибочный код миграции здесь:

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

Я специально не хочу использовать методы вверх и вниз из-за this

Пожалуйста, помогите.

1 Ответ

2 голосов
/ 03 февраля 2012

Потратив часы на поиски решения, я решил сдаться и побежал

rake db:migrate:reset

И это сработало, единственное, что мои данные были потеряны, что на данный момент не имело большого значения.

Спасибо всем за попытку решить эту проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...