Есть ли какой-либо инструмент или 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?

Я очень редко меняю базы данных, но просто добавляю таблицу или иногда столбец. Когда я запускаю свою программу, она проверяет наличие указанного столбца или таблицы, а если ее там нет, она просто пытается это сделать.

Другие вопросы по тегам