Просто, чтобы немного больше понять этот вопрос, у меня есть веб-приложение (asp mvc), которое в основном оборачивает операции CRUD в экземпляр MongoDb, оно выполняет проверку и определенную бизнес-логику, прежде чем модель проверена и отправлена вхранить, извлекать и т. д.
Теперь у нас есть одна проблема: в новой версии изменились модели, а в существующих данных нет, вот пример: (это специфично для c #, но вопрос действительноне зависит от языка)
public class Person
{
public Guid Id {get; set;}
public string Name {get; set;}
public int Age {get;set;}
public string BadgeNo {get;set;}
}
public class Person
{
public Guid Id {get; set;}
public string Name {get; set;}
public int Age {get;set;}
public string EmployeeNo {get; set;} // Still contains same data as BadgeNo just called something different
}
Как вы можете видеть, структура объектов изменилась, но в стране Монго она все еще выдает BadgeNo, а не EmployeeNo.В среде SQL мы обычно имеем сценарий миграции, который запускается как часть сценария сборки, который изменяет схему и обновляет / вставляет / удаляет любые дополнительные данные для этой дельты.
Так как лучше всегосправиться с этим миграциями с Монго?Должен ли я также иметь скрипт, который я использую для обновления всех экземпляров в Mongo?или есть какая-то другая предпочтительная практика для такого рода вещей.
Любой совет по этому вопросу был бы великолепен
=== Редактировать ===
Кажется, чтов настоящее время я хочу использовать вариант миграции, а не поэтапный подход, поэтому, учитывая это, любой может порекомендовать какие-либо инструменты для оказания помощи в этой области, поскольку в противном случае каждая миграция (при условии развертывания, развертывания) будет иметьбыть какой-то предварительно скомпилированной сборкой со всей логикой. Я думал о чем-то вроде FluentMigrator, но вместо работы с SQL вы работаете с Mongo.В настоящее время мои сценарии сборки используют Nant, я видел некоторые инструменты ruby, но не уверен, что есть какой-либо эквивалент .net.