База данных VS1010 Проекты и сценарии справочных данных
Просто интересно, как лучше справиться со следующим....
Я хочу иметь проект базы данных VS2010 для синхронизации схемы моей базы данных в среде разработки, тестирования интеграции и производственной среды.
В рамках тестовой и производственной сред у меня есть много справочных данных, которые необходимо загрузить в базу данных.
Для разработки и тестирования я могу просто воссоздать базу данных и использовать сценарии Post Deployment для загрузки данных. Тем не менее, я не могу сделать это для производственной среды, так как очевидно, что он будет иметь живые данные.
Итак, что является лучшим решением для этого? Я не думаю, что смогу использовать сценарии Post Deployment для загрузки базы данных, потому что в случае оператора вставки мне нужно было бы обернуть каждый из них в предложение IF NOT EXISTS... и есть тысячи строк.
Может быть, лучше всего использовать инструменты VS2010 + MSBuild, чтобы поддерживать схему в актуальном состоянии, а затем иметь отдельное решение для управления данными?
Или есть решение, которое использует только инструменты VS2010 + MSBuild?
4 ответа
Лучшее решение для живой производственной среды - вообще не использовать автоматические обновления!
Используйте очень хорошо проверенные скрипты обновления, сделанные вручную, в связи с обновлением вашего бэкэнда и внешнего интерфейса.
И всегда есть хорошая идея иметь свежую резервную копию
Используйте заполненную базу данных для генерации операторов слияния, которые можно применять в Post-Deployment. Это может быть хорошей идеей, чтобы убрать предложение DELETE.
Для справочных данных у вас может быть скрипт, который обрабатывает вставку, обновление или удаление в зависимости от того, есть ли данные в таблице или нет.
Проверьте эту ссылку для получения более подробной информации (это также включает в себя генератор, который поможет вам создавать свои сценарии).
Как насчет усечения и перестройки таблицы справочных данных каждый раз? Если есть ограничения, вы можете удалить их и добавить обратно в конец сценария после развертывания. Будет ли это работать для вас?
Или есть причина, по которой вы не можете удалить производственные справочные данные?