Подтвердить что ты не робот

Как вы переносите изменения базы данных Dev в базу данных производства?

Я работал над проектом и получил его на первом этапе. Тем не менее, требования в конечном итоге меняются, и я должен добавить новые таблицы и переделать некоторые из ключей ключа foriegn в БД.

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

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

Для сохранения изменений схемы вы можете использовать ApexSQL Diff, инструмент сравнения и синхронизации схемы SQL Server и SQL Azure, а также для хранения данных в базы данных, вы можете использовать ApexSQL Data Diff, инструмент сравнения и синхронизации данных SQL Server и SQL Azure.

Надеюсь, что это поможет

Отказ от ответственности: я работаю для ApexSQL в качестве инженера поддержки

Ответ 3

У вас должно быть что-то, называемое "KIT". Очевидно, что если вы поддерживаете какой-то элемент управления источником, все сценарии изменений, которые вы делаете в средах разработки, должны поддерживаться в инструменте настройки источника управления.

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

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

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

Ответ 4

Сравнение данных Red Gate и SQL Data полностью. Поскольку моя компания купила его, это сэкономило мне массу времени, размещая наши базы данных от DEV до TEST до ACCEPTANCE to PRODUCTION.

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

http://www.red-gate.com

Ответ 5

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

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

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

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

Ответ 6

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

Ответ 7

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

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

Ответ 8

Хороший инструмент разработки базы данных (например, Sybase Powerdesigner) позволит вам создавать изменения дизайна в модели данных, а затем генерировать код для реализации этих изменений. Затем вы можете сохранить и запустить код по своему усмотрению. Этот инструмент также должен иметь возможность выполнять обратное проектирование, когда вы наследуете базу данных, которую вы не создали.

Поиск всех изменений между разработкой и производством часто бывает затруднен даже в организованной, хорошо документированной среде. У Idera есть инструмент для SQL Server, который обнаружит структурные различия между вашей базой данных разработки и производства и другим инструментом, который обнаруживает изменения в данных. Фактически, я часто использую их, чтобы перейти в другое направление и синхронизировать разработку с производством, чтобы начать новый проект.