Entity Framework осуществляет миграцию кода в первую очередь и предотвращает потерю данных - PullRequest
0 голосов
/ 19 декабря 2018

Я хотел бы знать, что будет лучшим руководством для подражания и что следует учитывать, если я захочу добавить миграции в проект и отметить, что проект:

  • жив (dev /промежуточные / производственные среды)
  • Модель живых версий изменилась, и некоторые поля / таблицы удалены / добавлены
  • размещено в службе приложений Azure (параметры публикации)
  • isпроект MVC с Entity Framework 6, использующий сначала код

Я знаю основы добавления / использования миграций , но это все.Я хотел бы знать, как я могу осуществить миграцию к своему решению, опубликовать новый проект (измененная модель) без потери каких-либо данных .

Возможно ли это, и кто-нибудь может предложить мне что-нибудь посмотретьэто хорошо объясняется для такого рода установки?

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

Мой файл конфигурации:

public Configuration()
{
    AutomaticMigrationsEnabled = true; // tried false as well
    ContextKey = "ContractCare.Models.ApplicationDbContext";
    AutomaticMigrationDataLossAllowed = false;
}

С уважением

1 Ответ

0 голосов
/ 16 января 2019

Добавьте пустую миграцию моментальных снимков в среду DEV.При этом будет зафиксировано текущее состояние этой модели:

enable-migrations
Add-Migration InitialBaseline –IgnoreChanges  // Tells EF not generate Up() code of existing objects
update-database

Теперь все последующие изменения в DEV можно развернуть в других средах либо путем изменения строки подключения и повторного запуска, либо путем создания сценария, который можно запуститьна этих серверах update-database -Script.

Перед этим вы должны «подтянуть» другие среды к состоянию DEV, используя процессы, которые у вас уже есть.Затем вы применяете миграцию InitialBaseline к этим средам.

В дальнейшем вы можете применять миграции DEV к UAT, STG и, в конечном итоге, к PROD.Поскольку в DEV происходит много миграций, вы можете свернуть их в одну миграцию, как объясняет Крис здесь .

...