Управление версиями БД - решение на основе дайджеста - PullRequest
0 голосов
/ 17 апреля 2020

Вариант использования:

Команда неукоснительно придерживается схемы управления версиями (например, Flyway или Liquibase)

Существует проблема в производстве. Проверка версий, предоставляемых инструментами, показывает, что в последней версии сценария не было выполнено никаких изменений, и что доступно в проверке работающей базы данных.

При дальнейшем и дорогостоящем исследовании в результате кто-то изменил VARCHAR (20 ) к VARCHAR (24). Становится очевидным, что это изменение действительно было необходимо, чтобы решить проблему, и это нужно было сделать быстро. Таким образом, если все во всех командах (dev / ops) не являются последователями одной и той же религии, хранить версию структуры db в строке db практически бесполезно.

Есть ли такое решение (для MySQL, Oracle, PostgreSQL, что угодно), что вы вызываете хранимую процедуру и хранимую процедуру, которая возвращает дайджест / га sh?

Выполнение DML не повлияет на возвращаемый дайджест. Однако любое изменение DDL приведет к изменению дайджеста:

  • добавлен новый столбец
  • изменен столбец
  • создан индекс
  • добавлен внешний ключ
  • et c.

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

...