Странная ошибка миграции - PullRequest
2 голосов
/ 14 декабря 2011

У меня странная проблема с миграцией в Rails.

У меня есть эта таблица пользователя

  • пароль
  • email
  • ...

Я хочу расширить эту пользовательскую таблицу несколькими новыми столбцами, такими как

  • name
  • dob
  • ..

Затем я хочу запустить миграцию, подобную этой, чтобы заполнить новые столбцы для моих первых двух пользователей:

class UpdateUser < ActiveRecord::Migration
  def up
    User.find(1).update_attributes!( :name => 'Alexander', :dob => '1984-08-20')

    User.find(2).update_attributes!( :name => 'Ben', :dob => '1929-04-04')
  end

  def down
  end
end

Вот проблема: Когда я запускаю все файлы миграции (rake db: migrate) БЕЗ последнего (UpdateUser), а затем запустите новую миграцию (rake db: migrate) С последней, которая работает.Но это не работает, когда я делаю все миграции за один шаг (удаление, создание и миграция).

Поэтому я должен исключить последний файл миграции и включить его после первого «раунда миграции"опять ... почему это так?

1 Ответ

3 голосов
/ 14 декабря 2011

Почему бы вам просто не обновить свои таблицы при добавлении столбцов. Поэтому вы должны выполнить метод User.reset_column_information после добавления столбцов, чтобы убедиться, что ваша модель имеет текущие данные столбцов.

add_column ...

User.reset_column_information

User.find(1).update_attributes!( :name => 'Alexander', :dob => '1984-08-20')
User.find(2).update_attributes!( :name => 'Ben', :dob => '1929-04-04')

Дополнительную информацию о миграции ActiveRecord можно найти по адресу http://api.rubyonrails.org/classes/ActiveRecord/Migration.html

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