Почему я должен запустить миграцию дважды, чтобы значения появились в БД? - PullRequest
0 голосов
/ 07 апреля 2010

Необъяснимо, когда я запускаю следующий код миграции с помощью rake, в таблице MySQL DB появляется столбец, но не значения:

class AddTypeToItems < ActiveRecord::Migration
  def self.up
    add_column :items, 'type', :string, :limit => 100, :null => false

    Item.find_by_name('YUMMY_JUICE').update_attribute(:type, 'Juice')
    Item.find_by_name('TASTY_JUICE').update_attribute(:type, 'Juice')
    Item.find_by_name('NASTY_JUICE').update_attribute(:type, 'Juice')
  end

  def self.down
    remove_column :items, 'type'
  end
end

Мне действительно нужно откатить миграцию, затем запуститьснова (всего в два раза), чтобы значения появились.Что происходит?

1 Ответ

6 голосов
/ 07 апреля 2010

Попробуйте добавить

Items.reset_column_information

после вашего add_column заявления. ActiveRecord кэширует информацию о столбце, поэтому вам необходимо перезагрузить ее перед использованием.

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