Каковы плюсы и минусы использования файла дампа в качестве основы для миграции данных и схем, в отличие от полностью основанного на сценариях или дельта-базы данных инструмента?
Контекст заключается в том, что приложение находится в рабочем состоянии, и существует только одна производственная база данных. Схема приложения и базы данных находится в активной разработке. Важные пользовательские данные существуют в производственной базе данных и должны быть перенесены с развертыванием новых версий или исправлений.
Обсуждаемые решения:
База данных дампов -
- Начните с файлом опорной точки сброса.
- Сценарии изменения базы данных проверены в системе контроля версий.
- Развертывание влечет за собой загрузку файла дампа и запуск сценариев изменения
Схема + миграция
- Вся схема и некоторые данные, не относящиеся к конфигурации пользователя, хранятся в формате DDL и DML в SCM.
- Скрипты миграции с использованием схемы последнего выпуска хранятся в SCM.
- Развертывание влечет за собой загрузку схемы и миграцию данных. 3.
Моя интуиция заключается в том, что использование двоичного формата в качестве основы - это плохо, но я должен быть в состоянии убедить других (если это действительно так), которые утверждают, что это необходимо.
Я переформулировал этот вопрос, чтобы было легче ответить.
Ниже приведен оригинальный вопрос:
Я работаю с командой над корпоративным приложением, управляемым базой данных
и надеемся улучшить наш процесс. В настоящее время существует много
Ручной процесс обновления базы данных на всех уровнях. Целью является
автоматизированный процесс обновления базы данных последовательно и в
автоматизированная мода, (в соответствии с идеей атомных коммитов и
ближе к непрерывной доставке), что принесет многочисленные
преимущества.
Я думаю, что схема (и определенные данные, необходимые для приложения
конфигурации) должны быть представлены в системе контроля версий, а в
Кроме того, любые скрипты, необходимые для преобразования и загрузки пользовательских данных из
текущая производственная база данных. Я читал, что это не рекомендуется
иметь файл дампа (.dmp) в управлении исходным кодом, и интуитивно, я согласен
сильно. Однако я не согласен со всеми по проекту.
Встречный аргумент в том, что на самом деле это невозможно или
по крайней мере это слишком сложно, чтобы не начать с файла дампа. Я встаю
против моего предела знаний базы данных и не могу спорить
многозначительно ... Я больше разработчик, а не специалист по базам данных.
Предлагаемая альтернатива заключается в том, чтобы сохранить сценарии изменения, которые изменяют
дамп в последнюю схему.
Может кто-нибудь помочь мне понять плюсы и минусы каждого подхода
немного лучше? Нужен ли подход на основе дампа, хорошая идея или
не очень хорошая идея, а почему?
Небольшая предыстория, которая может иметь отношение: приложение находится в
производство, поэтому каждая новая версия должна импортировать данные как часть
процесс развертывания и по понятным причинам на интеграцию и UAT
Уровни это должны быть реальные данные. Однако это приложение не "поставляется" и
установленными клиентами, на
данное время, поддерживается внутренне. Я понимаю, что будут детали
конкретный для моего проекта, поэтому ответ должен быть направлен на общий
случай.