Мы автоматизируем процесс создания / изменения таблиц в нашей базе данных. Мы храним наши ddls в репозитории github. Наша цель - удалить и снова создать таблицу, если определение изменилось. В противном случае без изменений.
Допустим, у нас есть таблица с именем table1
Шаги:
1. Query database to get ddl for table1.
2. Get ddl from github repo, check if there is any difference between github & ddl from database server.
3. If there is a difference, drop and create again
4. Else, no change.
Для сравнения сравнение строк очень наивно (изменение в пробелы не означают изменения в схеме).
Есть ли API для сравнения? Я специально ищу python API. Стандартная утилита сравнения не справляется со сравнением файлов размером 2 sql. Он создаст diff, если порядок полей различен, но общий ddl может быть одинаковым.