Table of Contents

Interface IMigrator

Namespace
Microsoft.EntityFrameworkCore.Migrations
Assembly
Microsoft.EntityFrameworkCore.Relational.dll

The main service used to generated an EF Core Migrations script or migrate a database directly.

The service lifetime is Scoped. This means that each Microsoft.EntityFrameworkCore.DbContext instance will use its own instance of this service. The implementation may depend on other services registered with any lifetime. The implementation does not need to be thread-safe.

public interface IMigrator

Methods

GenerateScript(string, string, MigrationsSqlGenerationOptions)

Generates a SQL script to migrate a database either in its entirety, or starting and ending at specified migrations.

string GenerateScript(string fromMigration = null, string toMigration = null, MigrationsSqlGenerationOptions options = MigrationsSqlGenerationOptions.Default)

Parameters

fromMigration string

The migration to start from, or null to start from the empty database.

toMigration string

The target migration to migrate the database to, or null to migrate to the latest.

options MigrationsSqlGenerationOptions

The options to use when generating SQL for migrations.

Returns

string

The generated script.

Migrate(string)

Migrates the database to either a specified target migration or up to the latest migration that exists in the IMigrationsAssembly.

void Migrate(string targetMigration = null)

Parameters

targetMigration string

The target migration to migrate the database to, or null to migrate to the latest.

MigrateAsync(string, CancellationToken)

Migrates the database to either a specified target migration or up to the latest migration that exists in the IMigrationsAssembly.

Task MigrateAsync(string targetMigration = null, CancellationToken cancellationToken = default)

Parameters

targetMigration string

The target migration to migrate the database to, or null to migrate to the latest.

cancellationToken CancellationToken

A CancellationToken to observe while waiting for the task to complete.

Returns

Task

A task that represents the asynchronous operation