Я использую EF Code Первые миграции при разработке программного обеспечения для Visual Studio 2017. Работы по разработке и миграции баз данных выполняются в локальной базе данных.
Когда пришло время развертывать новую версию базы данных в производственной среде, у меня нет прямого доступа к производственной базе данных из среды Visual Studio.
Технически правильно использовать следующую процедуру для обновления удаленных производственных баз данных (которые поддерживают миграцию EF Code First):
1) создать сценарий БД только для схемы из базы данных PRODUCTION db, скажем, "prod_v1.sql"
2) создать новую базу данных с именем "PROD_V1" в LOCAL db, используя "prod_v1.sql"
3) на локальном компьютере, используйте «update-database -script» для PROD_V1, чтобы сгенерировать сценарий миграции «migrate_v1_to_v2.sql»
4) на компьютере PRODUCTION используйте SQL Server Management Studio и выполните сценарий миграции «migrate_v1_to_v2.sql» в окне запроса.
Единственное, что заставляет меня задуматься, работает ли это, - это выражение INSERT INTO __MigrationHistory в скрипте миграции. Является ли скрипт переноса «переносимым», т. Е. Можно ли запускать его для любого экземпляра базы данных, для которого уже включена история миграции?