Привет, народ.
Требуется тут сделать нестандарную самописную подсистему миграции в БД PostgreSQL 9.6 с учетом параноидальности начальства.
В стандартном виде миграция осуществляется по алгоритму: где-то хранится номер последнего обновления, и если есть новое обновление, то оно применяется поверх тех данных и структуры что есть в БД. При этом все система полагается на то, что если известна версия текущей структуры, то однозначно известна и сама структура, и эта структура правильная. И поэтому миграция применяется без реальной проверки структуры таблиц. И во всех разумных сценариях это работает.
Теперь рассмотрим параноидальный сценарий:
Предполагается, что в любой момент может появиться «тайный криворукий вредитель», который что-то сделает с таблицами в БД. С самими БД он ничего не сделает (не спрашивайте почему, никто этого не знает), а вот с таблицами - сделает. Поменяет тип столбца, переименует столбец или вовсе удалит, уберет индекс или еще что-то эдакое. Или вообще удалит таблицу.
Поэтому, в миграции надо автоматически проверять полную структуру таблиц, которая сформировалась в результате всех предыдущих миграций. И если структура неправильная, то удалять все данные, и прогонять все миграции заново с самой первой (да, вот такой странный подход).
Вопрос 1: как автоматически «вычислять» структуру таблиц, сформировавшуюся за все миграции, чтобы иметь возможность ее проверить?
Вопрос 2: как непосредственно проверить структуру таблиц на соответствие «вычисленной» на предыдущем шаге структуре?
Есть ли готовые SQL-команды или подходы для таких действий?
Используемые инструменты: C++, Qt. Никаких этих ваших яв, питонов, пхп и сторонних библиотек быть не должно.
PS: Я не прикалываюсь, я все это спрашиваю абсолютно серьезно.
Ответ на:
комментарий
от rtxtxtrx
Ответ на:
комментарий
от theNamelessOne
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от alex0x08
Ответ на:
комментарий
от theNamelessOne
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от alex0x08
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от alex0x08
Ответ на:
комментарий
от vbr
Ответ на:
комментарий
от alex0x08
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от ya-betmen
Ответ на:
комментарий
от lovesan
Ответ на:
комментарий
от alex0x08
Ответ на:
комментарий
от theNamelessOne
Ответ на:
комментарий
от Xintrea
Ответ на:
комментарий
от dimgel
Ответ на:
комментарий
от Xintrea
Ответ на:
комментарий
от Xintrea
Ответ на:
комментарий
от Xintrea
Ответ на:
комментарий
от theNamelessOne
Похожие темы
- Форум Миграции: как в самой таблице хранить номер версии структуры таблицы? (2023)
- Форум Freeradius проверка условия (2023)
- Форум bash: проверка условий (2004)
- Форум Изменение структуры таблиц (2011)
- Форум проверка членов структуры (2019)
- Форум javascript странная проверка условий (2012)
- Форум qmake проверка условия или (2015)
- Форум Проверка с несколькими условиями (2021)
- Форум [C] Порядок проверки условий (2009)
- Форум C: порядок проверки условий (2007)