У меня есть модель ActiveRecord со строковым столбцом (назовем его status
), который имеет 1 из 3 значений. Так что это кандидат на то, чтобы быть enum. Я хочу переключить его на перечисление ActiveRecord с целочисленной поддержкой без простоев. Вот мой рецепт:
- Добавить
status_id
в таблицу - Развернуть код, который записывает как
status
, так и status_id
class Foo
def status=(value)
write_attribute(:status_id, value)
write_attribute(:status, value)
end
end
- Строки обратной засыпки, имеющие NULL
status_id
- ???
Я хотел бы выполнить переход без простоев.
Я рассмотрел различные подходыс участием таких как write_attribute
или method_missing
, но ничто не доставляет меня туда. Даже подход, который изменяет ссылки на столбец в самом коде назад и вперед, будет иметь время простоя.
Как я могу выполнить переход без простоя?