Рубин на рельсах: грабли мигрируют вниз, похоже, не работает - PullRequest
1 голос
/ 12 июля 2011

Я сгенерировал миграцию, которая добавляет столбец encrypted_password в таблицу пользователей, присутствующую в моей базе данных. Это было сгенерировано автоматически с помощью команды:

rails generate migration add_password_to_users encrypted_password:string

class AddPasswordToUsers < ActiveRecord::Migration
  def self.up
    add_column :users, :encrypted_password, :string
  end

  def self.down
    remove_column :users, :encrypted_password
  end
end 

Я пытаюсь удалить и переделать столбец encrypted_password в users_table, вот что я делаю:

rake db:migrate:down VERSION=20110712172013 (это метка времени миграции) rake db:migrate (Я также пытался rake db:migrate:redo VERSION=20110712172013)

Я получаю эту ошибку: SQLite3 :: SQLException: повторяющееся имя столбца: encrypted_password: ALTER TABLE "users" ADD "encrypted_password" varchar (255)

Так что по какой-то причине миграция вниз фактически не удаляет столбец. У кого-нибудь есть идеи, почему?

Ответы [ 2 ]

2 голосов
/ 12 июля 2011

Ваш синтаксис правильный для миграции вниз.Не знаю, почему это не сработает.Вы можете внести изменения в свою миграцию и сделать:

rake db:reset

Чтобы перехватить новую миграцию, если все остальное не даст результата.

1 голос
/ 29 июля 2011

Я только что вытащил sqlitebrowser и удалил столбец encrypted_password вручную.Это решило проблему.Я тоже пытался мигрировать вверх и вниз, все отлично работает.Спасибо Крис.

...