Я работал над проектом и полученный это через первую стадию. Однако requirments закончил тем, что изменился, и я должен добавить новые таблицы и восстановить некоторые внешние ключевые ссылки в DB.
Проблемой, которую я имею, является мое отсутствие знаний контакта с выполнением этого вида изменения в подготовке затем производственная база данных, после того как я сделал разработку на dev базе данных.
Каковы некоторые стратегии миграции изменений схемы базы данных и поддержания данных в базе данных?
О насколько мое знание находится на выполнении, это, открывают Studio управления SQL-сервером и начинающий добавляющие таблицы вручную. Я знаю, что это - вероятно, плохой способ сделать это настолько ищущий, как сделать это правильно при понимании, что я, вероятно, начал неправильно.
Обычно я использую что-то вроде мастера публикации SQL Server для создания сценариев SQL для изменений. Это довольно простой и легкий подход. Основным недостатком этого инструмента является то, что созданные будут отбрасывать и воссоздавать таблицы, которые не были изменены, но используются процедурами, которые изменились (и я не могу понять, почему), поэтому существует некоторая ручная работа, связанная с прохождением сценария и удалением вещи, которых там не должно быть.
Обратите внимание , что вам не нужно загружать и устанавливать этот инструмент; вы можете запустить его из Visual Studio. Щелкните правой кнопкой мыши соединение в обозревателе серверов и выберите «Опубликовать у поставщика» в контекстном меню.
У вас должно быть что-то под названием «КОМПЛЕКТ». Очевидно, что если вы поддерживаете какую-то систему управления версиями, все сценарии для изменений, которые вы делаете в средах разработки, должны поддерживаться в инструменте конфигурации системы управления версиями.
После того, как вы закончите со всеми скриптами / изменениями, которые вы считаете сертифицированными, переходите к следующей среде более высокого уровня. Подготовьте комплект, поместив все эти скрипты в папки (в идеале, отнесенные к процедурам, таблицам, функциям, начальной загрузке), а затем получите пакетные файлы, которые могут выполнять эти скрипты в комплекте в определенном порядке с помощью утилиты командной строки OSQL.
Имейте отдельные командные файлы для UAT / Staging / production, чтобы вы могли просто дважды щелкнуть командный файл, чтобы запустить комплект на соответствующем сервере. Проверьте параметры OSQL.
Таким образом, все ваши среды синхронизированы!
Есть некоторые инструменты, которые помогут вам в этом.
Если у вас Visual Studio Team edition, проверьте проекты баз данных (aka DataDude aka Visual Studio Team for Database Professionals) См. здесь и здесь
Он позволяет вам генерировать модель из базы данных dev/integration и затем (для многих, но не для всех случаев) автоматически создавать скрипты, которые обновляют вашу базу данных prod с изменениями, внесенными в dev/integration.
Для VS 2008 убедитесь, что вы получили исправления GDR2.
Вы можете попробовать такой инструмент, как Liquibase: http://liquibase.org/
Мы обнаружили, что лучший способ продвигать изменения - это рассматривать изменения базы данных как код. Все изменения находятся в сценариях, они находятся в системе контроля версий и являются частью версии. Ни при каких обстоятельствах ничего не передается в prod, если это не написано сценарием и не находится в системе контроля версий. Таким образом, вы случайно не внесете изменения, которые находятся в dev, но еще не готовы к отправке в prod. Кроме того, вы можете восстановить данные продукта в поле разработчика и повторно запустить все сценарии, которые еще не были отправлены, и у вас есть свежие данные и вся работа разработчика. Это также отлично работает, когда у вас есть значения поиска в изменяемых таблицах, которые вы не хотите подталкивать к работе до тех пор, пока не будут перемещены другие элементы. Создайте сценарий вставки и поместите ее вместе с остальным кодом версии.
Приятно использовать эти инструменты для сравнения, чтобы увидеть, не упущено ли что-то в сценариях, но я НИКОГДА не буду полагаться только на них. Слишком велик риск подтолкнуть к продвижению что-то «еще не готовое к прайм-тайму».
Red Gate SQL Compare и сравнение данных SQL полностью. С тех пор, как моя компания купила его, я сэкономил массу времени, перестраивая наши базы данных от РАЗРАБОТКИ на ТЕСТИРОВАНИЕ до ПРИНЯТИЯ к ПРОИЗВОДСТВУ.
И вы также можете синхронизировать его с папкой сценариев для легкой интеграции в систему управления версиями.