4

Нам нужно перенести существующий проект из базы данных - сначала в кодовое. Каждая среда (DEV, TEST, PROD) имеет немного другую версию базы данных. Разница заключается в изменениях в DEV, которые, возможно, не были перенесены в TEST и PROD.Перенос базы данных - сначала в код-первый - переход из публикации в миграцию

-

Мы используем Entity Framework 6.1.3.

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

Мы заменяем модели Projec т (с EDMX) с кодом первого проектом. Проект базы данных уйдет, и наш новый код-код будет иметь миграцию.

-

Мы использовали EF PowerTools перепроектировать базы данных и создания моделей. Затем мы создаем миграцию и добавляем инструкции, необходимые для создания базы данных. Однако, когда мы обновляем базу данных, она вылетает из-за того, что таблицы уже существуют. Затем мы создали миграцию, которая игнорирует изменения. Теперь update-database ничего не делает. Это прекрасно, потому что все уже существует. Но что произойдет, если мне нужно будет установить новую пустую базу данных? Он не будет создавать ни один из этих объектов.

Чтобы усложнить ситуацию, некоторые из объектов, втянутых от инженера-реверса в DEV, не находятся в TEST. И некоторые таблицы в TEST могут быть изменены в DEV. И тогда PROD также может быть другим.

-

Как мы можем перейти от базы данных первого до кода, первый и до сих пор надежный процесс, который работает во всех средах и может построить автономную базу данных?

+0

Я думаю, что если вы удалите один из тегов (возможно [базы данных проекта]?) И добавить [сущность-рамка] вы получите больше людей, чтобы увидеть это. – jjj

ответ

2

Я бы начал с вашей самой низкой базовой линии, возможно, PROD. Прикрепите его к вашему проекту и создайте миграцию «Начальная» или что-то еще. Прокомментируйте код Up() и базу данных обновлений. Прикрепите вторую самую последнюю базу данных, возможно, TEST. Обновите базу данных снова (Initial). Добавьте вторую миграцию «TestChanges». Прокомментируйте код Up() и базу данных обновлений. Прикрепите базу данных DEV. Примените первую миграцию (Update-Database -TargetMigration: Initial), примените вторую. Теперь добавьте-миграции «DevChanges», закомментируйте код вверх, базу данных обновлений. Теперь вы можете раскомментировать код миграции или сгенерировать скрипт, чтобы получить любой из этих пунктов:

Update-Database -Script -SourceMigration: Initial -TargetMigration: DevChanges 

я бы, вероятно, назвать миграциями что-то более значимое, хотя.

https://msdn.microsoft.com/en-us/data/jj591621#specific