Назад | Перейти на главную страницу

MSSQL Replace Database в Live Web App

У меня есть действующее веб-приложение. Мне нужно было внести серьезные изменения в базу данных, и теперь мне нужно заменить текущую.

Мой экземпляр SQL dev не является живым. Обычно я просто делаю резервную копию новой БД, удаляю старую и восстанавливаю обновленную. Но теперь у меня есть данные, которые мне нужно сохранить.

Большинство текущих таблиц были изменены, в них были добавлены дополнительные столбцы, все существующие столбцы остались без изменений.

У меня есть доступ к Management Studio.

Как правильно это сделать?

«Правильный способ» сделать это - рассматривать любые изменения в базе данных во время разработки как временные и составлять список сценариев сборки базы данных, чтобы вы могли перестроить новую схему в производственной базе данных. Любые изменения, которые вы вносите, должны храниться в сценарии обновления SQL, привязанном к версии базы данных (1.0, 1.1, 1.2 ...), или, что еще лучше, помещать в репозиторий исходного кода для управления версиями вместе с программным кодом. Если вы хотите обновить свою производственную базу данных, вы должны запустить последовательность сценариев обновления, чтобы обновить базу данных до последней версии.

Иногда вы можете сгенерировать сценарии изменений после работы с вашей базой данных разработчиков в Management Studio, щелкнув правой кнопкой мыши таблицу или хранимую процедуру и выбрав «Сценарий для». Это сгенерирует оператор alter или create, который можно использовать для построения ваших сценариев обновления. Когда все сценарии обновления будут завершены, скопируйте свою производственную базу данных в ящик разработчика и протестируйте обновление, чтобы убедиться, что все работает. Затем, когда вы будете готовы обновить действующую систему, создайте резервную копию и запустите сценарии на производственном сервере.

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

Для получения дополнительной информации см. Этот вопрос о управление версиями и обновлениями баз данных.