Есть ли какой-либо инструмент или API для автоматического обновления структуры базы данных
В приложении, которое я поддерживаю, в последнее время я внес несколько изменений в структуру БД.
Я отправляю обновление пользователям, но очень сложно поддерживать их актуальность.
Есть ли простой способ сделать это?
Что-то, что позволяет пользователям пропускать версии, но все же делать обновление в следующей версии, которую они устанавливают.
Я использую базу данных BlackFish.
Спасибо
3 ответа
Просто сохраните номер версии базы данных в базе данных и напишите сценарии миграции следующим образом:
- database_10.sql - начальная структура БД
- database_10_15.sql - скрипт миграции для перехода с 1.0 на 1.5
- database_10_17.sql - скрипт миграции для перехода с 1.5 на 1.7
Проверяйте номер версии базы данных при каждом запуске приложения и применяйте необходимые сценарии миграции.
Примечание:
Еще одна привлекательная альтернатива этому также для небольшого проекта - Компонент ACE Absolute Database.
Теперь перейдем к сути:
Персональная версия (Free) поставляется с пользовательской утилитой DBManager (вместе с ее исходным кодом).
Это может послужить отправной точкой для того, как управлять программным изменением структуры базы данных (способ Delphi!).
Почему бы не портировать его на BlackFish?
Я очень редко меняю базы данных, но просто добавляю таблицу или иногда столбец. Когда я запускаю свою программу, она проверяет наличие указанного столбца или таблицы, а если ее там нет, она просто пытается это сделать.