Преимущества Fluent Migrator перед EF-миграциями?

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

0 ответов

Миграции EF изначально выполняются в первую очередь кода - сначала вы пишете модель, запускаетеefкоманды для генерации автоматической миграции и последующего обновления базы данных. Независимо от того, насколько сложна автоматическая миграция, всегда проблематично. Во-первых, такие вещи, как переименование столбцов, удаление неиспользуемых столбцов, всегда проблематичны. Кроме того, если вы используете типы записей F# или объекты POCO C#, то для облегчения миграции вам часто приходится украшать свои простые объекты БД атрибутами, специфичными для миграции, что нежелательно.

Во-вторых, миграции EF нелегко упаковать как отдельное консольное приложение. Упаковка миграций в отдельное исполняемое приложение всегда является лучшей идеей, поскольку потребителю вашего приложения не нужно беспокоиться о знании конкретных команд, таких как команды миграции структуры сущности. Пакеты вродеFluentMigrator а также DbUpупрощает упаковку в исполняемый файл. Однако это зависит от потребностей приложения. Например, если вы создаете стандартное приложение, такое как движок для ведения блогов в стиле Wordpress с открытым исходным кодом, и если ваша аудитория плохо разбирается в ядре.NET, то миграция в виде специальной утилиты будет полезна.

Вы можете захотеть запустить ef migrations программно, но это опять же анти-шаблон, поскольку в мире контейнеров несколько контейнеров могут привести к состоянию гонки и требуют особого внимания, поэтому всегда лучше иметь для этого отдельный консольный проект.

Другие вопросы по тегам