Exodus - проверенный в production фреймворк для управления миграциями MongoDB. Используется с 2013 года.
# Установка через RubyGems
gem install exodus
# Создание новой миграции
class AddEmailToUsers < Exodus::Migration
def up
users.find({}).each do |user|
user['email'] = generate_email(user)
users.save(user)
end
end
def down
users.update({}, {'$unset' => {'email' => 1}})
end
end
Всё необходимое для безопасных миграций данных
Используется в production окружениях с марта 2013 года. Протестирован на миллионах документов.
Каждая миграция имеет методы up и down для безопасного применения и отката изменений.
Отслеживание всех применённых миграций, контроль версий схемы базы данных.
Оптимизирован для работы с большими объёмами данных, пакетная обработка документов.
Транзакционность операций, логирование всех изменений, защита от повторного применения.
Легко интегрируется с Ruby on Rails, Sinatra и другими Ruby-фреймворками.
# Добавление нового поля во все документы
class AddTimestampsToProducts < Exodus::Migration
def up
products.find({}).each do |product|
product['created_at'] = Time.now
product['updated_at'] = Time.now
products.save(product)
end
end
def down
products.update({}, {'$unset' => {'created_at' => 1, 'updated_at' => 1}})
end
end
В production с 2013 года
Компаний используют
Миграций выполнено
Надёжность
Установка и настройка Exodus за 5 минут. Пошаговое руководство для начинающих.
Полное руководство по использованию всех возможностей фреймворка.
Детальная документация всех методов и классов Exodus.
Задайте вопрос или сообщите о проблеме через GitHub Issues.
Узнайте, как внести свой вклад в развитие проекта.
Официальный пакет на RubyGems с статистикой загрузок.
Присоединяйтесь к тысячам разработчиков, использующих Exodus