Миграции 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 есть открытый метод для каждой из доступных команд.