Skip to content

Latest commit

 

History

History
58 lines (41 loc) · 3.56 KB

getting-started.md

File metadata and controls

58 lines (41 loc) · 3.56 KB

Начало работы

Чтобы писать миграции, подключите в свой проект пакет ThinkingHome.Migrator.Framework из NuGet.

dotnet add package ThinkingHome.Migrator.Framework

Пример миграции

using ThinkingHome.Migrator.Framework;

[Migration(12)]
public class MyTestMigration : Migration
{
    public override void Apply()
    {
        Database.AddTable("CustomerAddress",
            new Column("customerId", DbType.Int32, ColumnProperty.PrimaryKey),
            new Column("addressId", DbType.Int32, ColumnProperty.PrimaryKey));
    }

    public override void Revert()
    {
        Database.RemoveTable("CustomerAddress");
    }
}

Обратите внимание:

  • Класс миграции унаследован от базового класса ThinkingHome.Migrator.Framework.Migration.
  • Для миграции указан номер версии (параметр атрибута [Migration(12)]), в которую перейдет БД после выполнения изменений, описанных в теле миграции.
  • Класс миграции должен реализовывать абстрактный метод Apply (применить изменения) и может реализовывать виртуальный метод Revert (откат изменений). Если откат изменений не нужен, метод Revert можно не переопределять. В этом случае будет использоваться его пустая реализация из базового класса.
  • Для изменений БД используется API провайдера трансформации, экземпляр которого доступен через свойство Database базового класса Migration. API предоставляет методы для выполнения операций над БД: например, AddTable (добавление таблицы) или ExecuteNonQuery (выполнение произвольного SQL-запроса).

Подробнее об API провайдера трансформации вы можете узнать в разделе Описание классов миграций.

Выполнение миграций

Установите утилиту migrate-database из NuGet пакета ThinkingHome.Migrator.CLI.

dotnet tool install -g thinkinghome.migrator.cli

Запустите migrate-database, указав нужный тип СУБД, строку подключения и путь к сборке с миграциями.

migrate-database postgres "host=localhost;port=5432;database=migrations;" /path/to/migrations.dll 

Также вы можете выполнить миграции из своего приложения на .NET Core, используя API мигратора. Например, вы можете написать приложение, которое при запуске само создает себе нужную структуру БД. Подробнее об этом в разделе Как запустить.

Далее

Узнайте подробнее о написании миграций и API провайдеров трансформации.