oleghaidul/depot — comment on commit 10e85de3cdf5491ffb2173c4f2eea6f276312003
File: db/migrate/20120114154456_combine_items_in_cart.rb line 17
By gotva:

Знаю, что данный код из книги. Так писать не стоит. Очень важно чтобы миграции можно было прогнать от одной версии до другой (в любом направлении). Данный код изменяет данные в БД (это нормально), плохо то что он это делает используя класс Cart. Допустим Депот вырос в мега приложение и мы по какой то причине удаляем/переименовываем модель Cart. Теперь забрав код мы не сможем выполнить данную миграцию (миграция упадет на слове Cart, так как больше не будет знать что это такое).

Здесь есть два решения:
- использовать прямой SQL (ведь мы точно знаем какие таблицы и поля есть в этот момент)
- писать rake tasks по обновлению данных (лично мне так мне симпатичней)