Статьи

Справочник по командам EF Migrations

Миграции Entity Framework обрабатываются из консоли диспетчера пакетов в Visual Studio. Использование показано в различных руководствах, но я не нашел полного списка доступных команд и их использования, поэтому я создал свою собственную. Есть четыре доступные команды.

  • Enable-Migrations : Включает первые миграции кода в проекте.
  • Add-Migration : Scaffolds скрипт миграции для любых ожидающих изменений модели.
  • Update-Database : применяет любые отложенные миграции к базе данных.
  • Get-Migrations : отображает миграции, которые были применены к целевой базе данных.

Информация здесь представляет собой вывод команды get-help command-name -detailed для каждой из команд в консоли диспетчера пакетов (работает EF 4.3.1). Я также добавил несколько собственных комментариев, где, по-моему, отсутствует информация. Мои собственные комментарии размещены под заголовком Дополнительная информация .

Обратите внимание, что все команды должны вводиться в одной строке. Я добавил разрывы строк, чтобы избежать вертикальных полос прокрутки.

Enable-Миграция

Включает кодовую первую миграцию в проекте.

Синтаксис

Enable-Migrations [-EnableAutomaticMigrations] [[-ProjectName] <String>]
  [-Force] [<CommonParameters>]

Описание

Включает Миграции, добавляя в проект класс конфигурации миграции. Если целевая база данных была создана инициализатором, будет создана начальная миграция (если автоматические миграции не включены с помощью параметра EnableAutomaticMigrations).

параметры

-EnableAutomaticMigrations

Определяет, будут ли включены автоматические миграции в конфигурации миграции лесов. Если пропущено, автоматические миграции будут отключены.

-ProjectName <String>

Задает проект, в который будет добавлен класс конфигурации миграции леса. Если опущен, используется проект по умолчанию, выбранный в консоли диспетчера пакетов.

-Force

Указывает, что конфигурация миграции будет перезаписана при запуске более одного раза для данного проекта.

<CommonParameters>

Этот командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительной информации введите: get-help about_commonparameters.

замечания

Чтобы увидеть примеры, введите: get-help Enable-Migrations -examples.
Для получения дополнительной информации введите: get-help Enable-Migrations -detailed.
Для получения технической информации введите: get-help Enable-Migrations -full.

Дополнительная информация

Флаг включения автоматических миграций сохраняется в файле Migrations \ Configuration.cs в конструкторе. Чтобы позже изменить опцию, просто измените назначение в файле.

public Configuration()
{
    AutomaticMigrationsEnabled = false;
}

Add-Migration

Помещает скрипт миграции для любых ожидающих изменений модели.

Синтаксис

Add-Migration [-Name] <String> [-Force]
  [-ProjectName <String>] [-StartUpProjectName <String>]
  [-ConfigurationTypeName <String>] [-ConnectionStringName <String>]
  [-IgnoreChanges] [<CommonParameters>]

Add-Migration [-Name] <String> [-Force]
  [-ProjectName <String>] [-StartUpProjectName <String>]
  [-ConfigurationTypeName <String>] -ConnectionString <String>
  -ConnectionProviderName <String> [-IgnoreChanges] [<Common Parameters>]

Описание

Scaffolds новый скрипт миграции и добавляет его в проект.

параметры

Имя <String>

Определяет имя пользовательского скрипта.

-Force

Указывает, что код пользователя миграции будет перезаписан при повторной установке существующей миграции.

-ProjectName <String>

Определяет проект, который содержит тип конфигурации миграции, который будет использоваться. Если не указан, используется проект по умолчанию, выбранный в консоли диспетчера пакетов.

-StartUpProjectName <String>

Указывает файл конфигурации для использования для именованных строк подключения. Если опущен, используется файл конфигурации указанного проекта.

-ConfigurationTypeName <String>

Определяет конфигурацию миграции для использования. Если опущено, миграции будут пытаться найти один тип конфигурации миграции в целевом проекте.

-ConnectionStringName <String>

Определяет имя строки подключения для использования из файла конфигурации приложения.

-ConnectionString <String>

Определяет строку подключения для использования. Если опущено, будет использовано контекстное соединение по умолчанию.

-ConnectionProviderName <String>

Задает имя инварианта поставщика для строки подключения.

-IgnoreChanges

Создает пустую миграцию, игнорируя любые ожидающие изменения, обнаруженные в текущей модели. Это можно использовать для создания начальной пустой миграции, чтобы включить миграцию для существующей базы данных. NB. При этом предполагается, что схема целевой базы данных совместима с текущей моделью.

<CommonParameters>

Этот командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительной информации введите: get-help about_commonparameters.

замечания

Чтобы увидеть примеры, введите: get-help Add-Migration -examples.
Для получения дополнительной информации введите: get-help Add-Migration -detailed.
Для получения технической информации введите: get-help Add-Migration -full.

Обновление базы данных

Применяет любые ожидающие миграции к базе данных.

Синтаксис

Update-Database [-SourceMigration <String>]
  [-TargetMigration <String>] [-Script] [-Force] [-ProjectName <String>]
  [-StartUpProjectName <String>] [-ConfigurationTypeName <String>]
  [-ConnectionStringName <String>] [<CommonParameters>]

Update-Database [-SourceMigration <String>] [-TargetMigration <String>]
  [-Script] [-Force] [-ProjectName <String>] [-StartUpProjectName <String>]
  [-ConfigurationTypeName <String>] -ConnectionString <String>
  -ConnectionProviderName <String> [<CommonParameters>]

Описание

Обновляет базу данных до текущей модели, применяя отложенные миграции.

параметры

-SourceMigration <String>

Действует только с -Script. Задает имя определенной миграции, которая будет использоваться в качестве отправной точки обновления. Если не указан, будет использована последняя примененная миграция в базе данных.

-TargetMigration <String>

Определяет имя конкретной миграции для обновления базы данных. Если не указано, будет использована текущая модель.

-script

Создайте сценарий SQL, а не выполняйте ожидающие изменения напрямую.

-Force

Указывает, что потеря данных допустима при автоматической миграции
базы данных.

-ProjectName <String>

Определяет проект, который содержит тип конфигурации миграции, который будет использоваться. Если не указан, используется проект по умолчанию, выбранный в консоли диспетчера пакетов.

-StartUpProjectName <String>

Указывает файл конфигурации для использования для именованных строк подключения. Если опущен, используется файл конфигурации указанного проекта.

-ConfigurationTypeName <String>

Определяет конфигурацию миграции для использования. Если опущено, миграции будут пытаться найти один тип конфигурации миграции в целевом проекте.

-ConnectionStringName <String>

Определяет имя строки подключения для использования из файла конфигурации приложения.

-ConnectionString <String>

Определяет строку подключения для использования. Если опущено, будет использовано контекстное соединение по умолчанию.

-ConnectionProviderName <String>

Задает имя инварианта поставщика для строки подключения.

<CommonParameters>

Этот командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительной информации введите: get-help about_commonparameters.

замечания

Чтобы увидеть примеры, введите: get-help Update-Database -examples.
Для получения дополнительной информации введите: get-help Update-Database -detailed.
Для получения технической информации введите: get-help Update-Database -full.

Дополнительная информация

Команда всегда сначала выполняет любые отложенные миграции на основе кода. Если база данных по-прежнему несовместима с моделью, необходимые дополнительные изменения применяются в качестве отдельного шага автоматической миграции, если включены автоматические миграции. Если автоматические миграции отключены, отображается сообщение об ошибке.

Get-Миграция

Отображает миграции, которые были применены к целевой базе данных.

Синтаксис

Get-Migrations [-ProjectName <String>] [-StartUpProjectName <String>]
  [-ConfigurationTypeName <String>] [-ConnectionStringName <String>]
  [<CommonParameters>]

Get-Migrations [-ProjectName <String>] [-StartUpProjectName <String>]
  [-ConfigurationTypeName <String>] -ConnectionString <String>
  -ConnectionProviderName <String> [<CommonParameters>]

Описание

Отображает миграции, которые были применены к целевой базе данных.

параметры

-ProjectName <String>

Определяет проект, который содержит тип конфигурации миграции, который будет использоваться. Если не указан, используется проект по умолчанию, выбранный в консоли диспетчера пакетов.

-StartUpProjectName <String>

Указывает файл конфигурации для использования для именованных строк подключения. Если опущен, используется файл конфигурации указанного проекта.

-ConfigurationTypeName <String>

Определяет конфигурацию миграции для использования. Если опущено, миграции будут пытаться найти один тип конфигурации миграции в целевом проекте.

-ConnectionStringName <String>

Определяет имя строки подключения для использования из файла конфигурации приложения.

-ConnectionString <String>

Определяет строку подключения для использования. Если опущено, будет использовано контекстное соединение по умолчанию.

-ConnectionProviderName <String>

Задает имя инварианта поставщика для строки подключения.

<CommonParameters>

Этот командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительной информации введите: get-help about_commonparameters.

замечания

Чтобы увидеть примеры, введите: get-help Get-Migrations -examples.
Для получения дополнительной информации введите: get-help Get-Migrations -detailed.
Для получения технической информации введите: get-help Get-Migrations -full.

Дополнительная информация

Команды powershell — это сложные функции powershell, расположенные в файле tools \ EntityFramework.psm1 установки Entity Framework. Код powershell в основном является оболочкой для System.Data.Entity.Migrations.MigrationsCommands, которая находится в файле tools \ EntityFramework \ EntityFramework.PowerShell.dll. Сначала создается объект MigrationsCommands со всеми параметрами конфигурации. Затем для объекта MigrationsCommands есть открытый метод для каждой из доступных команд.