В моем приложении CodeFirst локальные сборки имеют флаг app.config, который обозначает, что он не работает. Когда я не работаю, он полностью уничтожает базу данных. Поскольку мой пользователь рабочей базы данных НЕ имеет прав на удаление базы данных, даже если мое преобразование web.config каким-то образом пропущено (поэтому EF пытается воссоздать базу данных), моя производственная база данных не будет удалена, и вместо этого будет выдано исключение.
Мой рабочий процесс выглядит так:
- Проверьте производственную ветвь кода с последними изменениями
- Быстрое тестирование дыма / регрессии (это должно быть сделано до проверки кода в производственной ветке, но на всякий случай)
- Загрузите последнюю резервную копию моей производственной базы данных и установите ее на моем локальном сервере SQLEXPRESS
- Выполнить Открыть DBDiff между базой данных, созданной моим локальным кодом (несмотря на то, что это производственный код, поскольку он локальный, он воссоздает базу данных) для производственной резервной копии.
- Просмотр сгенерированных сценариев и попытка их запуска в рабочей резервной копии
- Предполагая, что ошибок не произошло, перезапишите базу данных, в которой был создан код с производственной резервной копией, и проведите тестирование с производственными данными, чтобы убедиться, что все данные все еще не повреждены;
- Запуск сценариев в реальной производственной базе данных.
Шаг # 2 автоматически создает новую, чистую базу данных на основе последней модели данных, поэтому я всегда знаю, что у меня есть актуальная база данных, в которой нет артефактов от усилий по разработке, которые, возможно, еще не готовы к работе.