База данных VS1010 Проекты и сценарии справочных данных

Просто интересно, как лучше справиться со следующим....

Я хочу иметь проект базы данных VS2010 для синхронизации схемы моей базы данных в среде разработки, тестирования интеграции и производственной среды.

В рамках тестовой и производственной сред у меня есть много справочных данных, которые необходимо загрузить в базу данных.

Для разработки и тестирования я могу просто воссоздать базу данных и использовать сценарии Post Deployment для загрузки данных. Тем не менее, я не могу сделать это для производственной среды, так как очевидно, что он будет иметь живые данные.

Итак, что является лучшим решением для этого? Я не думаю, что смогу использовать сценарии Post Deployment для загрузки базы данных, потому что в случае оператора вставки мне нужно было бы обернуть каждый из них в предложение IF NOT EXISTS... и есть тысячи строк.

Может быть, лучше всего использовать инструменты VS2010 + MSBuild, чтобы поддерживать схему в актуальном состоянии, а затем иметь отдельное решение для управления данными?

Или есть решение, которое использует только инструменты VS2010 + MSBuild?

4 ответа

Решение

Лучшее решение для живой производственной среды - вообще не использовать автоматические обновления!

Используйте очень хорошо проверенные скрипты обновления, сделанные вручную, в связи с обновлением вашего бэкэнда и внешнего интерфейса.

И всегда есть хорошая идея иметь свежую резервную копию

Используйте заполненную базу данных для генерации операторов слияния, которые можно применять в Post-Deployment. Это может быть хорошей идеей, чтобы убрать предложение DELETE.

Для справочных данных у вас может быть скрипт, который обрабатывает вставку, обновление или удаление в зависимости от того, есть ли данные в таблице или нет.

Проверьте эту ссылку для получения более подробной информации (это также включает в себя генератор, который поможет вам создавать свои сценарии).

Как насчет усечения и перестройки таблицы справочных данных каждый раз? Если есть ограничения, вы можете удалить их и добавить обратно в конец сценария после развертывания. Будет ли это работать для вас?

Или есть причина, по которой вы не можете удалить производственные справочные данные?

Другие вопросы по тегам