Можно ли изменить текстовый столбец на целочисленное перечисление без простоя? - PullRequest
0 голосов
/ 14 октября 2019

У меня есть модель ActiveRecord со строковым столбцом (назовем его status), который имеет 1 из 3 значений. Так что это кандидат на то, чтобы быть enum. Я хочу переключить его на перечисление ActiveRecord с целочисленной поддержкой без простоев. Вот мой рецепт:

  1. Добавить status_id в таблицу
  2. Развернуть код, который записывает как status, так и status_id
    class Foo
      def status=(value)
        write_attribute(:status_id, value)
        write_attribute(:status, value)
      end
    end
    
  3. Строки обратной засыпки, имеющие NULL status_id
  4. ???

Я хотел бы выполнить переход без простоев.

Я рассмотрел различные подходыс участием таких как write_attribute или method_missing, но ничто не доставляет меня туда. Даже подход, который изменяет ссылки на столбец в самом коде назад и вперед, будет иметь время простоя.

Как я могу выполнить переход без простоя?

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