Простым фактом является то, что вы не можете обращаться с объектами базы данных, когда будете обрабатывать свои Java, C# или другие файлы.
Есть много причин, и я назову несколько:
Файлы хранятся локально на компьютере разработчика и изменение s/он делает не влияет на других разработчиков. Аналогично, на разработчика не влияют изменения, сделанные ее коллегой. В базе данных это (обычно) не так, и разработчики используют одну и ту же среду базы данных, поэтому любые изменения, которые были привязаны к базе данных, влияют на другие.
Публикация изменений кода осуществляется с использованием изменений/изменений/и т. Д. (В зависимости от того, какой инструмент управления источником используется). В этот момент код из локального каталога разработчика вставляется в репозиторий управления версиями. Разработчик, который хочет получить последний код, должен запросить его у средства управления версиями. В базе данных изменение уже существует и влияет на другие данные, даже если оно не было зарегистрировано в репозитории.
Во время регистрации файла средство управления исходным кодом выполняет проверку конфликта, чтобы проверить, был ли тот же файл изменен и зарегистрирован другим разработчиком во время изменения локальной копии. Опять же, нет никакой проверки для этого в базе данных. Если вы измените процедуру с вашего локального ПК и в то же время изменяете ту же процедуру с помощью кода на моем локальном ПК, тогда мы переопределяем изменения друг друга.
Процесс сборки кода выполняется путем получения метки/последней версии кода в пустой каталог и последующего выполнения компиляции. Вывод - это двоичные файлы, в которых мы копируем &, заменим существующие. Нам все равно, что было раньше. В базе данных мы не можем воссоздать базу данных, так как нам нужно поддерживать данные! Также развертывание выполняет сценарии SQL, которые были сгенерированы в процессе сборки.
При выполнении SQL-скриптов (с командами DDL, DCL, DML (для статического содержимого)) вы предполагаете, что текущая структура среды соответствует структуре при создании сценариев. Если нет, то ваши сценарии могут завершиться неудачно, поскольку вы пытаетесь добавить новый столбец, который уже существует.
Обработка сценариев SQL как кода и их генерация вручную вызовет ошибки синтаксиса, ошибки зависимостей базы данных, сценарии, которые не могут использоваться повторно, что усложняет задачу разработки, поддержки и тестирования этих скриптов. Кроме того, эти сценарии могут работать в среде, которая отличается от той, которую вы, хотя она будет работать.
Иногда сценарий в репозитории управления версиями не соответствует структуре тестируемого объекта, а затем ошибки производятся!
Есть еще много, но я думаю, что вы получили картину.
То, что я обнаружил, что работает следующая:
Используйте принудительную систему управления версиями, претворяет проверить выход/проверить в операции на объектах базы данных. Это позволит убедиться, что репозиторий управления версиями совпадает с кодом, который был зарегистрирован, когда он считывает метаданные объекта в операции регистрации, а не как отдельный шаг, сделанный вручную.
Используйте анализ воздействия, который использует базовые линии как часть сравнения для выявления конфликтов и определения того, является ли изменение (при сравнении структуры объекта между репозиторием источника и базой данных) реальным изменением, которое происходило от разработки или изменения, происходившего с другого пути, а затем оно должно быть пропущен, например, разветвление или аварийное исправление.
Статья, которую я написал об этом, была опубликована here, вы можете ее прочитать.
Я начал с подготовки сценария для каждого объекта для достижения этого. Тем не менее, один из моих помощников по работе нашел простой способ использования жабы. Для других людей, если вы используете toad, тогда вы можете перейти к схеме -> и выбрать имя объекта и щелкнуть правой кнопкой мыши (выберите опцию в качестве таблицы create). Это может быть версия для версии. Надеюсь, это поможет всем вам. –