Сервер разработки сервера SQL и Live - PullRequest
1 голос
/ 21 мая 2010

У меня есть проект базы данных, который проходит итерации (пока только одна), и мне нужно развернуть тестовую версию на работающем сервере. Я не уверен, как это сделать.

Я могу внести все изменения в копию, а затем переделать эти изменения в живую версию. Это не имеет смысла.

Есть ли способ изменить имя сервера на существующий сервер? Какова лучшая практика для этого сценария?

Ответы [ 3 ]

1 голос
/ 21 мая 2010

В проекте базы данных Visual Studio вы должны иметь столько соединений с базой данных, сколько вам нужно. Когда вы запускаете свои скрипты, вы можете выбрать пункт меню «Run On ....», а затем выбрать соединение с сервером, на котором будут запускаться эти скрипты.

альтернативный текст http://i49.tinypic.com/10pzp8m.png

Просто убедитесь, что имя базы данных одинаково для обоих экземпляров, или убедитесь, что вы не указали USE (database) в начале всех ваших сценариев, если имена баз данных отличаются от цели к цели.

0 голосов
/ 21 мая 2010

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

Поскольку у вас, по-видимому, нет того, что вам нужно развернуть, вам необходим инструмент для проверки различий между базами данных. SQL сравнения от Redgate - это то, что нужно купить.

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

Также вам может понадобиться SQL Data Compare для запуска любых таблиц поиска, которые вы должны увидеть, были ли добавлены новые значения в dev, которые нужно перейти в prod. Опять же, эти вставки должны были быть написаны по сценарию и в управлении исходным кодом, а затем развертывание просто.

0 голосов
/ 21 мая 2010

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

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

В моем нынешнем проекте мы используем то, что я считаю ужасной практикой: мы храним поддерживаемый вручную скрипт обновлений схемы для каждой версии, и каждый раз, когда кто-то вносит изменения, они должны обновлять этот скрипт. Время от времени кто-то совершает ошибку, и нам приходится карабкаться, чтобы понять, что пошло не так. Как будто у нас только что возникла проблема с развертыванием в нашем приемочном тесте для пользователя, потому что кто-то обновил инструкцию create для новой таблицы, добавив внешний ключ в другую новую таблицу ... не осознавая, что таблица, на которую ссылаются, была создана до тех пор, пока в скрипте не будет дальше. Тест работал нормально, потому что таблицы создавались в том порядке, в котором он работал.

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

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

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