3

В настоящий момент мы вручную перенаправляем изменения из нашей среды DEV SQL в TEST и производство (используя сравнение Schema в Visual Studio, а также некоторый скрипт, который мы создаем при внесении изменений в DEV), но это очень время и склонность к ошибкам.Синхронизирован с другой базой данных

Нам было интересно, если бы был лучший способ сделать это и , как нам это реализовать.

Я читал о возможностях использования версий (как это работает?), Или, возможно, с использованием элемента управления источником RED GATES SQL (но можно ли это использовать для вставки изменений в TEST или он используется только для сохранения трек локальных изменений?)

Мы хотим надежный способ обновить наши TEST & серверы Production, так что данные не будут повреждены/потеряны ... Мы используем SQL Server 2008 R2 и Visual Studio 2012.

Мы начинаем новый проект, так что пришло время перемен! Спасибо за ваше время!

+0

Вы также можете посмотреть на SQL Сравнить от Красных ворот. На своем веб-сайте «Сравнить схемы базы данных и развернуть различия» –

+0

В [Ежедневный WTF] есть хорошая статья (http://thedailywtf.com/Articles/Database-Changes-Done-Right.aspx). Не шутите, идите читать! – user1429080

ответ

2

Одним из простых способов сделать это было бы иметь таблицу простых версий в db с одной строкой и одним столбцом, в котором хранится номер версии.

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

Будьте осторожны при удалении столбцов, изменении типов столбцов или уменьшении размеров колонок, например. varchar (100) в varchar (10) в ваших инкрементных сценариях, поскольку это может привести к потере данных, если они не будут правильно спланированы.

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

0

Имеет ли схема сравнения в VS есть CLI? Если это возможно, вы можете, возможно, автоматизировать его несколько раз в течение дня. Если нет, вы можете попробовать использовать некоторые другие сторонние инструменты, которые поддерживают CLI, например ApexSQL Diff для схемы, и ApexSQL Data Diff для синхронизации данных.

1

Хотя есть много преимуществ в использовании SQL Source Control (и я бы хотел, чтобы вы отдали его, так как я менеджер продукта!), Его цель ограничена управлением версиями, а не управлением и развертыванием ваши различные среды. Правильным инструментом Red Gate для этого будет диспетчер развертывания.

http://www.red-gate.com/delivery/deployment-manager/

Существует блог поддерживается командой проекта менеджер развертывания здесь, который должен дать вам представление о том, куда движется инструмент:

http://thefutureofdeployment.com/