EF5 Описание команд миграции

Основное управление скриптами миграциями для Entity Framework осуществляется из консоли менеджера пакетов, которая суть есть PowerShell, и во многих уроках и разборах упоминаются лишь базовые команды и опции, и не особенно фигурируют другие возможности. Решено было озаботиться составлением такого списка.

Основных команд, как и ожидалось всего 4:

  • Enable-Migrations – включает возможность миграции в EF
  • Add-Migration – добавляет/генерирует новую миграцию
  • Update-Database – обновление базы данных
  • Get-Migrations – показывает какие обновления были применены к БД

Представленная ниже информация получена с помощью команды

get-help <имя_команды> —detailed

Плюс некоторые комментарии с моей стороны. Естественно, что все команды должны вводиться одной строкой.

Enable-Migrations

Команда включает механизм миграций в Entity Framework.

Синтаксис

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

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

Описание

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

Параметры

      -EnableAutomaticMigrations [<SwitchParameter>]

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

    -ProjectName <String>

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

    -StartUpProjectName <String>

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

    -ConnectionStringName <String>

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

    -ConnectionString <String>

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

    -ConnectionProviderName <String>

Указывает на провайдер данных, который должен использоваться в строке соединения.

    -Force [<SwitchParameter>]

Дает разрешение на перезапись существующих данных в проекте.

    <CommonParameters>

Данная команда – Enable-Migrations – поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для большей информации советую набрать в консоли «get-help about_commonparameters».

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

Включение и выключение автоматических миграций может быть сделано в коде самостоятельно, для этого в классе Configurations есть специальная переменная.

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] [<CommonParameters>]

Описание

Создает новые классы миграции и помещает их в проект.

Параметры

    -Name <String>

Определяет имя для нового скрипта/класса миграции.

    Force [<SwitchParameter>]

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

    -ProjectName <String>

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

    -StartUpProjectName <String>

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

    —ConfigurationTypeName <String>

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

    -ConnectionStringName <String>

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

    -ConnectionString <String>

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

    -ConnectionProviderName <String>

Указывает на провайдер данных, который должен использоваться в строке соединения.

    —IgnoreChanges [<SwitchParameter>]

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

    <CommonParameters>

Данная команда – Enable-Migrations – поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для большей информации советую набрать в консоли «get-help about_commonparameters».

 

 

Update-Database

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

Синтаксис

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 [<SwitchParameter>]

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

    Force [<SwitchParameter>]

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

    —ProjectName <String>

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

    -StartUpProjectName <String>

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

    —ConfigurationTypeName <String>

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

    -ConnectionStringName <String>

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

    -ConnectionString <String>

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

    -ConnectionProviderName <String>

Указывает на провайдер данных, который должен использоваться в строке соединения.

    <CommonParameters>

Данная команда – Enable-Migrations – поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для большей информации советую набрать в консоли «get-help about_commonparameters».

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

Миграция к начальной версии может быть осуществлена как с помощью команды:

Так и с помощью команды

 

Get-Migrations

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

Синтаксис

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>

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

    -StartUpProjectName <String>

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

    —ConfigurationTypeName <String>

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

    -ConnectionStringName <String>

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

    -ConnectionString <String>

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

 -ConnectionProviderName <String>

Указывает на провайдер данных, который должен использоваться в строке соединения.

   <CommonParameters>

Данная команда – Enable-Migrations – поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для большей информации советую набрать в консоли «get-help about_commonparameters».

Hard’n’Heavy

 

Оставить комментарий