Каждая миграция может быть выполнена на любой СУБД, для которой реализован провайдер трансформации — специальный класс, отвечающий за генерацию SQL запросов для конкретной СУБД. Провайдер СУБД нужно указывать при запуске миграций на выполнение.
Класс провайдера СУБД реализует интерфейс ITransformationProvider
и инкапсулирует в себе всю работу с конкретной СУБД. При запуске миграций на выполнение мигратор создает экземпляр провайдера и передает его каждой миграции во время ее выполнения. Экземпляр провайдера СУБД доступен в методах миграции через свойство Database
. Методы Apply
и Revert
выполняемой миграции вызывают методы объекта Database
, а созданный экземпляр провайдера выполняет нужные операции над базой данных.
Есть уже готовые провайдеры для MS SQL Server, PostgreSQL, Oracle, MySQL и SQLite.
СУБД | Короткое имя провайдера | NuGet пакет |
---|---|---|
MS SQL Server | sqlserver | ThinkingHome.Migrator.Providers.SqlServer |
PostgreSQL | postgres | ThinkingHome.Migrator.Providers.PostgreSQL |
Oracle | oracle | ThinkingHome.Migrator.Providers.Oracle |
MySQL | mysql | ThinkingHome.Migrator.Providers.MySql |
SQLite | sqlite | ThinkingHome.Migrator.Providers.SQLite |
Прочитайте в разделе Разработка, как писать собственные провайдеры трансформации.