Преимущества Fluent Migrator перед EF-миграциями?
Проект, над которым я сейчас работаю, был изменен на беглого мигранта из EF-миграций. Каковы преимущества беглого мигранта по сравнению с миграцией? Действительно ли стоит использовать миграцию EF?
0 ответов
Миграции EF изначально выполняются в первую очередь кода - сначала вы пишете модель, запускаетеef
команды для генерации автоматической миграции и последующего обновления базы данных. Независимо от того, насколько сложна автоматическая миграция, всегда проблематично. Во-первых, такие вещи, как переименование столбцов, удаление неиспользуемых столбцов, всегда проблематичны. Кроме того, если вы используете типы записей F# или объекты POCO C#, то для облегчения миграции вам часто приходится украшать свои простые объекты БД атрибутами, специфичными для миграции, что нежелательно.
Во-вторых, миграции EF нелегко упаковать как отдельное консольное приложение. Упаковка миграций в отдельное исполняемое приложение всегда является лучшей идеей, поскольку потребителю вашего приложения не нужно беспокоиться о знании конкретных команд, таких как команды миграции структуры сущности. Пакеты вродеFluentMigrator
а также DbUp
упрощает упаковку в исполняемый файл. Однако это зависит от потребностей приложения. Например, если вы создаете стандартное приложение, такое как движок для ведения блогов в стиле Wordpress с открытым исходным кодом, и если ваша аудитория плохо разбирается в ядре.NET, то миграция в виде специальной утилиты будет полезна.
Вы можете захотеть запустить
ef migrations
программно, но это опять же анти-шаблон, поскольку в мире контейнеров несколько контейнеров могут привести к состоянию гонки и требуют особого внимания, поэтому всегда лучше иметь для этого отдельный консольный проект.