Смешано имя и тип нового столбца при миграции, теперь таблица в схеме повреждена - PullRequest
1 голос
/ 22 января 2012

Я добавил несколько столбцов в модель, используя миграцию

class AddManyfieldsToBooks < ActiveRecord::Migration
  def self.up
    add_column :books, :item_one, :float
    add_column :books, :item_two, :float

  end

  def self.down
    remove_column :books, :item_one
    remove_column :books, :item_two    
  end
end

Я также обновил attr_accessible в модели Book

attr_accessible :item_one, :item_two

Затем я запустил пакет exec rake db:команда migrate

Однако новые поля не были добавлены в schema.rb

Прошло много времени с тех пор, как я в последний раз использовал rails, и мне было интересно, где я ошибаюсь.Ранее я выполнял миграции для этого проекта по одному полю за раз, и они были в порядке.Есть ли что-то, чего мне не хватает?

Спасибо

РЕДАКТИРОВАТЬ 1: я понял, когда я сделал свою миграцию, я написал

rails migration add_manyfields_to_books float:item_one

вместо

rails migration add_manyfields_to_books item_one:float

Это привело к следующей ошибке в schema.rb

# Could not dump table "books" because of following StandardError
#   Unknown type 'item_one' for column 'float'

Я создал новую ветку 'добавление-элементы', чтобы внести изменения в базу данных.Однако даже когда я возвращаюсь в основную ветвь, такая же ошибка существует в схеме.Я попытался откатить миграцию

bundle exec rake db:rollback STEP=1

, но это не решает проблему.Я также удалил ветку добавления элементов, в которой я вносил эти изменения, в надежде, что их не будет в основном файле

Как лучше всего решить эту проблему?Стоит ли бросить таблицу Книг и добавить ее заново с нуля?

1 Ответ

1 голос
/ 24 января 2012

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

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