Rails: запускайте rake-задачи, такие как миграции

Моей команде разработчиков необходимо более точно выполнять задачи по рейку. Есть определенные задачи, которые необходимо запускать только один раз после определенного изменения кода. Не вдаваясь в подробности, это будет похоже на необходимость обновления определенных записей существующих пользователей после того, как в коде будет реализовано новое бизнес-правило для новых пользователей.

Нам нравится, как миграции используют таблицу db для ведения журнала. Есть ли аналогичный инструмент для рейк-задач? Можем ли мы взломать систему миграции Rails / ActiveRecord для выполнения рейк-задач?

Мы бы предпочли не смешивать миграции, связанные с базами данных, с задачами rake, поэтому было бы замечательно любое решение, которое явно разделяет эти миграции.

Спасибо.


person user94154    schedule 08.09.2010    source источник


Ответы (2)


нужно запускать только один раз после определенного изменения кода

обновить определенные существующие записи пользователей

Это миграции. Используйте миграции. Если нет каких-либо дополнительных ограничений, о которых вы не упомянули, использование чего-либо, кроме миграции, было бы взломом.

person yfeldblum    schedule 08.09.2010
comment
+1 Миграции не должны ограничиваться только изменениями схемы. - person Shadwell; 10.09.2010
comment
Правильный. Фактически, миграции не ограничиваются изменением схемы. Вы также можете использовать их для исправления неверных данных в базе данных или заполнения новых полей (guides.rubyonrails.org/migrations.html#anatomy-of-a-migration). - person yfeldblum; 10.09.2010
comment
если вы будете использовать миграцию для чего-то вроде этого, вы должны писать SQL, не ссылаясь на имена моделей, в случае любого изменения имени модели, миграция не должна изменяться по времени, но имя таблицы будет изменено миграцией, которая будет после тот, который использует это имя таблицы. - person mohamed-ibrahim; 04.05.2016

Я создал драгоценный камень именно для того, что вам нужно: http://eyaleizenberg.blogspot.co.il/2014/08/how-to-keep-track-of-rails-rake-tasks.html

person eyal83    schedule 07.08.2014