Добрый вечер!
Недавно здесь поднималась тема версионного изменения структуры БД. Среди готовых решений для миграции БД (для .NET-проектов) там упоминался проект ECM7.Migrator, одним из авторов которого я являюсь.
Вчера мы, наконец, отрелизили версию 2.0. Взять новую версию можно на страничке проекта в google code и в галерее пакетов nuget.
ECM7.Migrator — форк проекта Migrator.NET, появившийся 2 года назад и живущий теперь самостоятельной жизнью.
Основная идея — изменения БД записываются в коде при помощи специального фреймворка. Все изменения находятся в специальных классах — миграциях. Каждая миграция имеет номер и может быть выполнена как вперед (применение изменений), так и назад (откат изменений). Таким образом можно из любой версии БД получить любую другую.
Мигратор также содержит средства для выполнения миграций: консольное приложение и таски для NAnt/MSBuild.
Подробнее о миграторе можно почитать здесь.
К версии 2.0 мы шли больше полугода. За это время был сделан большой объем работы. Вот список основных изменений:
Когда полтора года назад я писал топик о выходе первой версии мигратора, его заминусовали (я так до конца и не понял, почему именно). Возможно, сейчас будет то же самое, но это не важно.
Мы используем мигратор в наших проектах на основной работе и мы заметили, что новая версия значительно лучше предыдущих. Большинство знакомых, попробовавших мигратор с моей подачи, уже сами повторно используют его в других проектах и утверждают, что это единственный способ работы с БД во время разработки, который им нравится.
Мы уже получили то, что хотели. Если топик снова заминусуют — ничего не изменится. Если же благодаря этому топику кто-то откроет для себя новый способ работы с БД — мы будем очень рады. Также я с удовольствием отвечу на любые ваши вопросы, касающиеся мигратора.
Спасибо за внимание!
Недавно здесь поднималась тема версионного изменения структуры БД. Среди готовых решений для миграции БД (для .NET-проектов) там упоминался проект ECM7.Migrator, одним из авторов которого я являюсь.
Вчера мы, наконец, отрелизили версию 2.0. Взять новую версию можно на страничке проекта в google code и в галерее пакетов nuget.
WTF
ECM7.Migrator — форк проекта Migrator.NET, появившийся 2 года назад и живущий теперь самостоятельной жизнью.
Основная идея — изменения БД записываются в коде при помощи специального фреймворка. Все изменения находятся в специальных классах — миграциях. Каждая миграция имеет номер и может быть выполнена как вперед (применение изменений), так и назад (откат изменений). Таким образом можно из любой версии БД получить любую другую.
Мигратор также содержит средства для выполнения миграций: консольное приложение и таски для NAnt/MSBuild.
Подробнее о миграторе можно почитать здесь.
Версия 2.0
К версии 2.0 мы шли больше полугода. За это время был сделан большой объем работы. Вот список основных изменений:
- полностью переписано ядро;
- возможность вести в одной БД параллельный учет версий нескольких независимых компонентов системы;
- возможность настройки мигратора при помощи конфигурационного файла приложения;
- новая система логирования на основе log4net;
- экранирование зарезервированных слов в названиях;
- поддержка MS SqlServer CE 4, отсутствует поддержка версий SQLServer CE < 4;
- новая функция FormatSql в интерфейсе ITransformationProvider для написания независимых от СУБД SQL-запросов;
- удалены методы Select и SelectScalar из интерфейса ITransformationProvider — используйте методы ExecuteQuery и ExecuteScalar;
- открытие соединения в провайдере трансформации теперь происходит по требованию;
- удалена возможность выполнения миграций из нескольких сборок;
- удалены некоторые загадочные классы, оставшиеся от Migrator.NET и не содержащие полноценно реализованного функционала;
- из класса миграции удалены методы AfterUp, AfterDown, InitializeOnce;
- дополнительные проверки корректности номеров миграций в сборке.
PS.
Когда полтора года назад я писал топик о выходе первой версии мигратора, его заминусовали (я так до конца и не понял, почему именно). Возможно, сейчас будет то же самое, но это не важно.
Мы используем мигратор в наших проектах на основной работе и мы заметили, что новая версия значительно лучше предыдущих. Большинство знакомых, попробовавших мигратор с моей подачи, уже сами повторно используют его в других проектах и утверждают, что это единственный способ работы с БД во время разработки, который им нравится.
Мы уже получили то, что хотели. Если топик снова заминусуют — ничего не изменится. Если же благодаря этому топику кто-то откроет для себя новый способ работы с БД — мы будем очень рады. Также я с удовольствием отвечу на любые ваши вопросы, касающиеся мигратора.
Спасибо за внимание!