Вариант использования:
Команда неукоснительно придерживается схемы управления версиями (например, Flyway или Liquibase)
Существует проблема в производстве. Проверка версий, предоставляемых инструментами, показывает, что в последней версии сценария не было выполнено никаких изменений, и что доступно в проверке работающей базы данных.
При дальнейшем и дорогостоящем исследовании в результате кто-то изменил VARCHAR (20 ) к VARCHAR (24). Становится очевидным, что это изменение действительно было необходимо, чтобы решить проблему, и это нужно было сделать быстро. Таким образом, если все во всех командах (dev / ops) не являются последователями одной и той же религии, хранить версию структуры db в строке db практически бесполезно.
Есть ли такое решение (для MySQL, Oracle, PostgreSQL, что угодно), что вы вызываете хранимую процедуру и хранимую процедуру, которая возвращает дайджест / га sh?
Выполнение DML не повлияет на возвращаемый дайджест. Однако любое изменение DDL приведет к изменению дайджеста:
- добавлен новый столбец
- изменен столбец
- создан индекс
- добавлен внешний ключ
- et c.
Мой вопрос не в том, чтобы вести историю изменений на основе этих дайджестов. Просто выясните, какова структура во время выполнения, и найдите несоответствия между двумя работающими базами данных на основе соответствующих дайджестов.