Создание сценария CHANGE в Management Studio? - PullRequest
3 голосов
/ 25 августа 2009

Мне было интересно, есть ли способ автоматически добавлять в файл сценария все изменения, которые я делаю в своих столбцах, таблицах, отношениях и т. Д. ...

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

Есть ли простой способ сделать это? Может ли он также переносить изменения схемы базы данных?

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

Мне просто интересно, что я что-то упустил?

Ответы [ 6 ]

6 голосов
/ 25 августа 2009

Не вносите изменения в тестовый сервер с помощью пользовательского интерфейса. Напишите сценарии и держите их под контролем исходного кода. Вы можете проверить свои сценарии, начиная с резервного копирования живых данных, и настраивать свои сценарии, пока они не достигнут желаемого результата. Затем вы можете проверить скрипты для справки, а затем применить их на действующем сервере. См. Эту статью Контроль версий и ваша база данных .

Кстати, посмотрите SSMS toolpack , я думаю, что он может делать то, что вы хотите (я не уверен). Тем не менее, мой совет верен: создайте версию вашей схемы, используйте явно созданные / сохраненные сценарии, используйте контроль исходного кода.

0 голосов
/ 02 января 2013

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

BTW Kal Admin также имеет возможности метаданных и сравнения данных.

0 голосов
/ 22 октября 2009

Я знаю, что опаздываю на вечеринку, но я просто хотел добавить, что существуют десятки сторонних продуктов. Некоторые очень хорошие, некоторые очень дешевые или бесплатные, а некоторые - смесь. Я перечислил 22 здесь:

http://bertrandaaron.wordpress.com/2012/04/20/re-blog-the-cost-of-reinventing-the-wheel/

0 голосов
/ 25 августа 2009

У нас есть процесс, в котором, когда разработчик завершает изменение, он затем записывает его в сценарий и проверяет его в Subversion. В Subversion у нас есть папка для таблиц, хранимых процедур, данных и т. Д. Они записывают ее в сценарий, чтобы она была повторяемой (т.е. не вставляйте новые данные, если они уже есть). Это важно сделать в любом случае, чтобы сохранить история изменений для данного объекта в базе данных.

Раньше мы просто вводили каждый из файлов, которые мы хотели записать в виде сценария, в текстовый файл (т.е. FileListV102.txt). Когда мы были готовы сделать релиз, мы делали «самые последние» для всех файлов (тогда VSS). Тогда у нас была простая утилита, которая считывала файл «список файлов» и открывала каждый из этих файлов по очереди. объединяя их в выходной файл. Это довольно легко закодировать.

Мы переросли это, и теперь у нас есть инструменты управления выпуском (которые можно найти здесь и поступит в продажу в середине сентября), который берет все файлы и создает большой файл сценария SQL из Это. Он делает это в порядке, который вы ожидаете, основываясь на именах папок, поэтому файлы, найденные в папке «Таблицы», создаются раньше, чем в папке «Данные» и т. Д.

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

0 голосов
/ 25 августа 2009

Попробуйте использовать TableDiff, поставляемый с SQL Server 2005.

Утилита SQL Server 2005 TableDiff

Утилита tablediff

0 голосов
/ 25 августа 2009

Нет способа напрямую создать дельта-скрипт в SSMS.

Однако, если каждый раз, когда вы публикуете изменения, вы записываете всю базу данных, включая данные, в SQL с помощью Мастер публикации баз данных SQL Server , вы должны иметь возможность извлекать различия между версиями и получать ваши таким образом.

Если деньги не являются объектом, вы можете приобрести редакцию Visual Studio Team System Database Architect и использовать ее фантастические инструменты сравнения баз данных для генерации и управления версиями именно тех различий, которые вам нужны.

...