Вопрос касается как Entity Framework Core, так и общего вопроса: я сейчас настраиваю DevOps Azure и думаю о трех этапах:
- Dev (Nightly)
- UAT (приемочные тесты)
- Производство
С точки зрения приложения, я очень хорошо могу настроить это в DevOps Azure с логикой этапов, задач и настроек приложения.
Тем не менее, сейчас я нахожусь на этапе миграции баз данных, и я не знаю, как именно двигаться дальше: я хотел бы, чтобы этап разработки всегда был самым последним и лучшим, а для UAT и Production, вероятно, сценарии вручную (это это даже хорошая идея?)
Тем не менее, Entity Framework Core действительно, кажется, не очень хорошо работает с таким подходом, например, нам нужно знать ConnectionString, которая устанавливается только в Release Management для конкретной среды, поскольку это секретная информация .
Моя идея состоит в том, чтобы иметь флаг "AutoMigrate" для Dev и локальных сред, который затем вызвал бы
dbContext.Database.Migrate();
Тогда у меня возникнет проблема с UAT и Production: мне бы хотелось иметь возможность создавать сценарии в управлении выпусками, возможно, просматривать их и затем применять?
Мне кажется, что я не совсем разбираюсь в теме: я хотел бы использовать новые интересные функции для автоматизации, поскольку все наши предыдущие проекты имели ручные шаги вручную или также внешние инструменты, такие как DbUp.
Я довольно много исследовал эту тему, но я не уверен, что мои ожидания просто ошибочны или я не использую EF Core. Есть ли хорошие ресурсы и обсуждения по этой теме?