Вышла версия 1.0 beta2 системы контроля версий БД ECM7.Migrator (обзор проекта ECM7.Migrator можно почитать здесь). В новой версии исправлены найденные ошибки и выполнен рефакторинг. Также было добавлено некоторое количествно новых возможностей. Наиболее важные из них перечислены ниже.
UPD. Как я вижу, этот пост получил отрицательную оценку. Пожалуйста, если ставите минус, пишите в комментариях, за что.
Также я хочу поблагодарить всех, кто попробовал использовать мигратор и написал свои отзывы и замечания.
UPD. Как я вижу, этот пост получил отрицательную оценку. Пожалуйста, если ставите минус, пишите в комментариях, за что.
- Возвращена поддержка PostgreSQL: после обзорной статьи на хабре получил несколько писем с просьбой вернуть поддержку PostgreSQL, что и было сделано. Класс диалекта PostgreSQL называется ECM7.Migrator.Providers.PostgreSQL.PostgreSQLDialect и находится в сборке ECM7.Migrator.Providers.PostgreSQL.
- Добавлена возможность задавать при создании внешнего ключа разные действия на update и delete (для тех СУБД, которые это поддерживают).
- Добавлена возможность использовать при запуске миграций короткие имена диалектов вместо полных имен их классов. Список коротких имен диалектов: «SqlServer», «SqlServer2005», «SqlServerCe», «Oracle», «MySql», «SQLite», «PostgreSQL».
- Удален флаг ColumnProperty.Indexed (использовался для автоматической генерации индекса при создании таблицы). Вместо него добавлены методы для явного выполнения операций над индексами (создание/удаление/проверка существования).
- Добавлена возможность выполнения скриптов из вложенных файлов ресурсов (Embedded resource). Раньше можно было выполнить произвольный SQL запрос только при помощи метода ExecuteNonQuery (например, это был единственный способ создать хранимую процедуру). Этот вариант имеет несколько неудобств: неудобочитаемый код, необходимость экранирования кавычек и т.д. Теперь вместо этого можно просто добавить в проект с миграциями файл .sql, указать для него значение свойства Build Action = Embedded resource и вызвать из кода нужной миграции метод ExecuteFromResource, передав в качестве параметров Assembly, в которой находится нужный файл и путь к файлу.
Также я хочу поблагодарить всех, кто попробовал использовать мигратор и написал свои отзывы и замечания.