Заполнение недавно добавленного столбца в Rails - PullRequest
0 голосов
/ 03 января 2011

Я добавил новый столбец по умолчанию в таблицу с именем свойство в моей базе данных в процессе миграции.

class AddDefaultToProperty < ActiveRecord::Migration
  def self.up
    add_column :property, :is_default, :boolean
  end

  def self.down
    remove_column :property, :is_default
  end
end

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

ИСПОЛЬЗОВАНИЕ РЕЙЛОВ 2.3.10

Спасибо!

Ответы [ 2 ]

2 голосов
/ 03 января 2011

Это зависит. Если это неотъемлемая часть миграции, и вы хотите, чтобы эти данные были доступны сразу после завершения миграции, то вы должны поместить этот сценарий непосредственно в вашу миграцию. Если доступность данных может подождать, вы также можете выбрать задачу rake для заполнения данных - положительным моментом является то, что ваша миграция будет быстрее, а задание rake необязательным - недостатком является то, что вы должны запускать ее вручную. 1001 *

0 голосов
/ 03 января 2011

Я бы рекомендовал изменить данные в процессе миграции. Это гарантирует, что дальнейшие миграции всегда будут работать как положено.

Однако всегда убедитесь, что вы создаете свои собственные модели для использования в миграциях, в противном случае конфликты между более новыми моделями и более старыми схемами вас поймут.

Просто добавьте эту строку в начало вашей миграции:

class Property < ActiveRecord::Base; end
...