EntityFramwork - Как мне использовать существующую базу данных и применять миграции, при этом поддерживая автоматическое обновление? - PullRequest
0 голосов
/ 16 октября 2018

У меня есть следующее.

  • Модель Entity Framework, которая сопоставляется с базой данных SQLSERVER.Это производственные данные, но нет таблицы __MigrationHistory.Мне нужно сохранить данные.

  • Новая обновленная модель, включающая новые таблицы, столбцы и т. Д.

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

Я следовал учебному руководству Microsoft " Code First Migrationsс существующей базой данных", но это вызывает у меня проблему начального -ignoreChanges, в результате чего невозможно создать модель с нуля.Мне нужно иметь возможность как воссоздать его, так и добавить миграции в существующую базу данных без истории миграции.Это так, как -ignoreChanges при начальной миграции дает мне пустую up(), а второй сценарий миграции будет содержать код только для пропатченных таблиц / столбцов.Если я не проигнорирую изменения, то инфраструктура попытается создать таблицы, которые уже существуют.

Я собирался не игнорировать изменения при начальной миграции, а затем выполнить какое-то "CREATE TABLE IF NOT EXISTS" для всех существующих таблиц,но это кажется невозможным.

Бьюсь об заклад, я что-то упускаю прямо под открытым небом.Что это?

1 Ответ

0 голосов
/ 16 октября 2018

не проверено, но должно выполняться:

  • использовать старую модель для создания таблицы _MigrationHistory
  • копировать / вставить (выбрать / вставить или любой другой метод etl) _MigrationHistory в рабочей средебаза данных
  • обновить модель до новой
  • создать новую миграцию
  • подтолкнуть миграцию к БД.

СДЕЛАТЬ ВСЕ ВПЕРВЫЕТЕСТОВАЯ СРЕДА!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...