Получение rake db: ошибка миграции

пытаюсь добавить ИМЯ ПОЛЕ к моей простой_форме в рельсах

добавили $ rails generate migration AddNameToUsers name: string

который был добавлен в файл user.db и в мой файл миграции

class AddNameToUsers < ActiveRecord::Migration
  def change
    add_column :users, :name, :string
  end
end

НО, когда я запускаю rake db:migrate, я получаю следующие ошибки (также запускал bundle exec ...)

грабли прерваны! Произошла ошибка, эта и все последующие миграции отменены:

SQLite3::SQLException: duplicate column name: email: ALTER TABLE "users" ADD "email" varchar(255) DEFAULT '' NOT NULL/usr/local/rvm/gems/ruby-1.9.3-p392/gems/sqlite3-1.3.8/lib/sqlite3/database.rb:91:in `initialize' /usr/local/rvm/gems/ruby-1.9.3-p392/gems/sqlite3-1.3.8/lib/sqlite3/database.rb:91:in `new' /usr/local/rvm/gems/ruby-1.9.3-p392/gems/sqlite3-1.3.8/lib/sqlite3/database.rb:91:in `prepare' /usr/local/rvm/gems/ruby-1.9.3-p392/gems/sqlite3-1.3.8/lib/sqlite3/database.rb:134:in `execute'

Любые идеи?


person Neil    schedule 30.08.2013    source источник
comment
Ошибка находится прямо в первой строке, в которой говорится: «повторяющееся имя столбца: электронная почта: ALTER TABLE пользователи ДОБАВИТЬ электронную почту», поэтому где-то в вашей миграции у вас уже есть столбец с именем электронная почта. Это необходимо решить, прежде чем вы сможете запустить db: migrate. Каждый раз, когда вы запускаете команду db:migrate, она переносит всю вашу базу данных и обнаруживает, что у вас есть существующее поле с именем email. Вы можете проверить, есть ли у вас это. И если он у вас есть, вам нужно его удалить. Поскольку другая миграция пытается добавить имя столбца email   -  person David    schedule 30.08.2013
comment
спасибо за подключение - честно говоря @david не слишком уверен, где искать. У меня есть 3 файла в моем файле миграции devise_create_users.rb и add_devise_to_users.rb и add_name_to_name_to_users.rb. в моем файле user.db есть это - ›attr_accessible: email,: password,: password_confirmation,: Remember_me,: name, не знаю, как удалить поле электронной почты. Я пытаюсь добавить поле имени в свою форму регистрации, которое работает с полем электронной почты и пароля, поскольку я добавил поле имени, не работает?   -  person Neil    schedule 30.08.2013
comment
Опубликуйте файлы миграции devise_create_users.rb и add_devise_to_users.rb.   -  person Amit Sharma    schedule 03.09.2013
comment
@Neil, почему вы удалили ответ ?.   -  person Amit Sharma    schedule 10.09.2013
comment
Я не удалил ответ!   -  person Neil    schedule 10.09.2013
comment
Дело в том, что есть еще один парень, у которого такая же проблема. так что пришел сюда, чтобы поделиться ссылкой   -  person Neil    schedule 10.09.2013


Ответы (1)


У меня был такой же опыт. Заметил, что в папке db / migrate появился новый файл devise .rb. Я удалил его, а затем обновил, и он сработал.

person Ken    schedule 02.12.2013