После прочтения многих вопросов здесь о миграции и версиях схемы БД, я придумал схему безопасного обновления схемы БД во время нашего процесса обновления. Основная идея заключается в том, что во время обновления мы экспортируем базу данных в файл, удаляем и заново создаем все таблицы, а затем повторно импортируем все. Там нет ничего необычного или рискованного.
Проблема в том, что эта система несколько «вирусная», что означает, что безопасно добавлять столбцы или таблицы, поскольку их удаление вызовет проблемы при повторном импорте данных. Обычно мне было бы хорошо просто игнорировать эти столбцы, но проблема в том, что многие из удаленных элементов были фактически реорганизованы, а наличие старых в коде обманывает других программистов, заставляя их думать, что они могут их использовать.
Итак, я хотел бы найти способ пометить столбцы или таблицы как устаревшие. В идеальном случае устаревшие объекты были бы помечены при обновлении схемы, но затем во время следующего обновления наш скрипт резервного копирования просто не ВЫБИРАЛ объекты, помеченные таким образом, что позволило бы нам постепенно исключить эти части схемы. .
Я обнаружил, что MySQL (и, возможно, другие платформы БД, но именно эту мы используем) поддерживает атрибут COLUMN как для полей, так и для таблиц. Это было бы прекрасно, за исключением того, что я не могу понять, как на самом деле использовать его осмысленно. Как мне написать SQL-запрос, чтобы получить все имена столбцов, которые , а не содержат текст комментария, соответствующий слову «устарел»? Или я все смотрю на эту проблему неправильно и упускаю гораздо лучший способ сделать это?