Я пишу приложение, которое использует базу данных (в настоящее время MySQL 4) для хранения данных.
Вполне вероятно, что позже я внесу изменения в форме обновлений, чтобы добавить дополнительные данные. Обновление приложения простое, оно сводится к перезаписи файлов программы новыми. Но как мне обновить схему базы данных?
База данных является удаленной, и поэтому мое приложение может существовать в нескольких местах, поэтому простой вывод операторов ALTER и CREATE в установщик приведет к многократным изменениям, и меня явно попросили об автоматическом решении, которое позволяет для копий приложения, которые будут обновлены в течение переходного периода, и для автоматических обновлений схемы.
Я рассмотрел схему при запуске для поиска отсутствующих таблиц и столбцов и добавления их по мере необходимости, однако это не кажется чистым решением. Я также подумал о том, чтобы поместить какой-нибудь номер «версии схемы» в базу данных, но не вижу способа сделать это за исключением таблицы из одной строки со столбцом int «Version», который тоже не выглядит хорошим способом.