Skip to content

Версионная миграция структуры БД для .NET

Notifications You must be signed in to change notification settings

enragez/ecm7migrator

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Описание

ECM7 Migrator - система контроля версий базы данных для .NET, похожая на Ruby on Rail's Migrations. Цель - облегчить внесение изменений в БД и обеспечить контроль версий БД.

Данный проект является веткой проекта Migrator.NET.

Поддерживаемые СУБД

  • MySQL 5.0 и выше;
  • Oracle 10g и выше;
  • SQLite 3 и выше;
  • MS SQL Server 2005 и выше;
  • MS SQL Server Ce 4.
  • SQL Azure;
  • PostgreSQL 9 и выше;
  • Firebird 2.5 и выше;

Способы выполнения изменений БД

  • MSBuildTarget;
  • NAntTask;
  • консольное приложение;
  • API.

Информация

Документация не обновлена, мы работаем над этим.

  1. Обзор ECM7.Migrator;
  2. Начало работы;
  3. Написание классов "миграций";
  4. Выполнение "миграций";
  5. Использование с различными СУБД;
  6. Как собрать проект из исходного кода;

История изменений

Изменения в версии 2.8 (11.06.2013 - текущая версия)

  • удалена зависимость от библиотеки ECM7.Common.dll;
  • переход с log4net на NLog;
  • теперь по умолчанию используются 64-битные версии библиотек System.Data.SQLite.dll и Oracle.DataAccess.dll;
  • рефакторинг и исправление мелких ошибок;

Изменения в версии 2.7 (10.10.2012)

  • сборки подписаны строгим именем;
  • возможность задавать timeout для команды;
  • возможность выполнять миграции без открытия транзакции;

Изменения в версии 2.6 (08.02.2012)

  • Добавлена возможность работы со схемами БД, отличными от схемы по умолчанию;
  • Более корректное формирование человекочитаемых имен классов миграций;
  • Из интерфейса ITransformationProvider удален метод AddTable, принимающий параметр engine (данный параметр использовался только в провайдере MySql);

Изменения в версии 2.5 (23.10.2011)

Изменения провайдеров

  • Полностью переписаны классы всех провайдеров;
  • Полностью переписаны классы тестов для провайдеров:
  • один общий провайдер для MSSQL 2005, MSSQL 2008 и SQL Azure;
  • поддержка Firebird;
  • обработка разделителей запросов (например, "GO" для MSSQL);
  • более корректная реализация методов изменения колонок;
  • SQLite: добавлена поддержка индексов;
  • из интерфейса ITransformationProvider удалены все варианты метода AddColumn, которые внутри себя создают Column и вызывают свою перегруженную версию;
  • метод ExecuteQuery переименован в ExecuteReader;
  • из интерфейса ITransformationProvider удалены методы GetColumnByName, GetColumns;

Общие изменения

  • теперь Migrator может принимать в конструкторе экземпляр подключения (это будет полезно, например, при запуске тестов на SQLite в памяти);
  • ITransformationProvider и Migrator теперь реализуют интерфейс IDisposable (все миграции выполняются в одном подключении, а в методе Dispose оно закрывается);
  • класс Dialect объединен с классом TransformationProvider;
  • исправлена ошибка с сортировкой списка загруженных миграций при логировании;
  • методы Up и Down переименованы в Apply и Revert;
  • пустая реализация метода Revert по умолчанию (теперь не обязательно переопределять метод, откатывающий изменения);
  • библиотеки NAnt обновлены до версии 0.91;
  • обработка параметров командной строки через NDesk.OptionSet;
  • удалены "левые" конструкторы у класса Column;
  • изменен механизм выполнения действий для заданного типа провайдера;
  • удалено ограничение ForeignKeyConstraint.Restrict;
  • удалено свойство колонки ColumnProperty.ForeignKey.

About

Версионная миграция структуры БД для .NET

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 100.0%