Подтвердить что ты не робот

Версии моделей в Ruby on Rails

Я ищу плагин/действие, позволяющее управлять версиями моих моделей. Трудно найти список доступных решений. Пока я собрал:

  • acts_as_versioned
  • simply_versioned
  • vestal_versions

В последних двух решениях требуется только одна таблица версий - это звучит неплохо, но у меня плохое представление о том, насколько легко переносится миграция (потому что они сериализуют состояния как строку).

С другой стороны, acts_as_versioned немного запылен (последнее совершение в январе). Есть ли какой-нибудь недавний опыт с любым из них? Или другие решения (или вилки), которые я мог упустить?

4b9b3361

Ответ 1

Я работал с vestal_versions на прошлой неделе, и да, это самая передовая альтернатива, по крайней мере с точки зрения пространства: вы храните именно то, что вам действительно нужно. Это активный проект, и версия 1.0 станет огромным обновлением со многими новыми функциями; просто посмотрите на ветвь 1.0, чтобы знать, что я имею в виду.

Но, немного поиграв с этим, я заметил большой недостаток: производительность. Каждый раз, когда вам нужна конкретная версия, вам нужно пройти все промежуточные, восстановив нужную вам версию. Это также означает, что вы не можете редактировать или удалять версию напрямую, потому что это может быть связано с изменениями, передавая цепочку. Для этого вам необходимо соответствующим образом обрабатывать версии, что vestal_versions в настоящее время не делает.

Таким образом, для проблемы, с которой я столкнулся, у меня появилось собственное решение для управления версиями. Мне нужна была производительность и возможность быстро удалять и редактировать версии, поэтому я пожертвовал хранилищем и разработал нечто похожее на act_as_versioned.

НО, если вам это не нужно и не нужно очень часто возвращаться, я настоятельно рекомендую vestal_versions. Это продвинутое, надежное решение и активное, со страстным разработчиком за ним.

Ответ 2

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

http://github.com/airblade/paper_trail

Надеюсь, это поможет!

Ответ 4

Мы использовали act_as_audited в проекте с неплохим успехом.

Вы можете найти, что на http://github.com/collectiveidea/acts_as_audited/

(последняя фиксация в ноябре:-))

Ответ 5

Другой плагин - paper_trail. Вот ссылка на railscasts, опубликованные сегодня:

http://railscasts.com/episodes/255-undo-with-paper-trail

Он также упоминает, почему он предпочитает paper_trail над vestal_versions

Ответ 6

Эй, мне интересно, думал ли кто-нибудь об использовании Perforce, GitHub и т.д. в базе данных INSTEAD базы данных как способ поддержки управления версиями? Поэтому, по сути, это будет поиск данных на основе файлов, я думаю...