Как Вы Перемещаете Изменения Базы данных Dev в Производственной Базе данных?

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

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

Каковы некоторые стратегии миграции изменений схемы базы данных и поддержания данных в базе данных?

О насколько мое знание находится на выполнении, это, открывают Studio управления SQL-сервером и начинающий добавляющие таблицы вручную. Я знаю, что это - вероятно, плохой способ сделать это настолько ищущий, как сделать это правильно при понимании, что я, вероятно, начал неправильно.

16
задан Buddy Lindsey 29 June 2010 в 06:59
поделиться

6 ответов

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

Обратите внимание , что вам не нужно загружать и устанавливать этот инструмент; вы можете запустить его из Visual Studio. Щелкните правой кнопкой мыши соединение в обозревателе серверов и выберите «Опубликовать у поставщика» в контекстном меню.

2
ответ дан 30 November 2019 в 22:30
поделиться

У вас должно быть что-то под названием «КОМПЛЕКТ». Очевидно, что если вы поддерживаете какую-то систему управления версиями, все сценарии для изменений, которые вы делаете в средах разработки, должны поддерживаться в инструменте конфигурации системы управления версиями.

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

Имейте отдельные командные файлы для UAT / Staging / production, чтобы вы могли просто дважды щелкнуть командный файл, чтобы запустить комплект на соответствующем сервере. Проверьте параметры OSQL.

Таким образом, все ваши среды синхронизированы!

4
ответ дан 30 November 2019 в 22:30
поделиться

Есть некоторые инструменты, которые помогут вам в этом.

Если у вас Visual Studio Team edition, проверьте проекты баз данных (aka DataDude aka Visual Studio Team for Database Professionals) См. здесь и здесь

Он позволяет вам генерировать модель из базы данных dev/integration и затем (для многих, но не для всех случаев) автоматически создавать скрипты, которые обновляют вашу базу данных prod с изменениями, внесенными в dev/integration.

Для VS 2008 убедитесь, что вы получили исправления GDR2.

1
ответ дан 30 November 2019 в 22:30
поделиться

Вы можете попробовать такой инструмент, как Liquibase: http://liquibase.org/

1
ответ дан 30 November 2019 в 22:30
поделиться

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

Приятно использовать эти инструменты для сравнения, чтобы увидеть, не упущено ли что-то в сценариях, но я НИКОГДА не буду полагаться только на них. Слишком велик риск подтолкнуть к продвижению что-то «еще не готовое к прайм-тайму».

0
ответ дан 30 November 2019 в 22:30
поделиться

Red Gate SQL Compare и сравнение данных SQL полностью. С тех пор, как моя компания купила его, я сэкономил массу времени, перестраивая наши базы данных от РАЗРАБОТКИ на ТЕСТИРОВАНИЕ до ПРИНЯТИЯ к ПРОИЗВОДСТВУ.

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

http://www.red-gate.com

3
ответ дан 30 November 2019 в 22:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: