#visual-studio-2010 #sql-server-2008 #database-project
#visual-studio-2010 #sql-server-2008 #база данных-проект
Вопрос:
Я использую SQL 2008 Database Project, чтобы отслеживать все изменения в моей базе данных и легко обновлять базы данных, выполняя для них сравнение схемы.
Плохо то, что мне нужно иметь VS2010 на компьютере, на котором я хочу выполнить сравнение схемы.
В настоящее время я смог открыть дверь на удаленных серверах и подключиться к ним, выполнив сопоставление схемы на моем компьютере, но было бы здорово, если бы я мог выполнить все прямо на целевом сервере.
Есть ли способ выполнить сравнение схемы, используя только сгенерированные схемы проекта DB?
Ответ №1:
Я не уверен, почему плохо, что у вас есть базы данных SQL2008 и вы работаете с VS2010. Я делаю это каждый день. Но если вы просто хотите сравнить две схемы БД (то есть файлы .dbschema).вот статья о том, как это сделать: http://msdn.microsoft.com/en-us/library/aa833435.aspx#comparewithvsdbcmd
Комментарии:
1. На самом деле это не так уж плохо, но обычно у меня нет VS2010 на моих рабочих компьютерах, и обновление этих баз данных может быть затруднено, если я не могу установить соединение между моим подключением и экземпляром рабочего SQL. В принципе, я бы предпочел обновить производственную схему, например, путем выполнения командной строки… Это просто я высказываю некоторые мысли … 🙂
2. это другая история. Для производства я даже не доверяю сравнению схемы 🙂 Я получаю список изменений из исходного кода (в данном случае TFS) и автоматически создаю сценарии развертывания для каждого объекта. Это звучит как большая работа, но в основном она автоматизирована, поэтому не имеет большого значения. и таким образом я точно знаю, что происходит в prod, и у меня есть сценарий отката на случай, если что-то пойдет не так.
3. Я использую сравнение схемы с осторожностью. Я снимаю галочки со многих вещей, а затем копирую / вставляю их в SSMS для проверки сценария, но поскольку у меня промежуточная среда, большинство проблем обнаруживается при нескольких промежуточных обновлениях, которые я делаю перед выпуском в производство. Поэтому, когда я запускаю его в производство, редко происходит что-то неожиданное.
4. Создание изменений схемы вручную для меня просто невозможно… В каждом спринте у меня обычно много изменений, действительно много, и, кроме того, мои проекты основаны на распределенной платформе из нескольких служб WCF, каждая из которых имеет свою собственную базу данных, поэтому было бы безумием обновлять все мои базы данных вручную. Мой сценарий отката — это резервное копирование сразу после перевода сайтов в автономный режим и непосредственно перед началом процесса обновления! 🙂