Добрый вечер!
Появился такой вопросик. Есть БД на FB. Есть установщик серверной части, который пока только устанавливает FB если требуется и саму базу в указанный каталог. Очередная версия программы может иметь уже новую структуру БД, а у пользователя накопятся данные в установленной базе. Задача. Как произвести обновление базы у клиента. Ориентироваться на известный номер версии клиента не желательно, поскольку у клиента могут быть разные версии и обновлять придется БД с разными прошлыми версиями.
Пока вижу такой выход. Имея новую структуру и БД клиента сгенерировать скрипт, который внесет изменения в БД клиента. При этом данные клиента должны сохраниться, но добавятся например новые поля и таблицы. В таком случае КАК СГЕНЕРИРОВАТЬ СКРИПТ ДЛЯ ИЗМЕНЕНИЙ???
Можно также установить новую пустую БД, а в нее скопировать все что возможно из существующей. Но опять же ЧЕМ ПОЛЬЗОВАТЬСЯ???
Вот у меня такие вопросы или более общий — кто как решает эту проблему?
Пользуюсь InnoSetup.
Заранее благодарен!
Обновление БД
Модераторы: kdv, Alexey Kovyazin
-
- Заслуженный разработчик
- Сообщения: 1436
- Зарегистрирован: 15 сен 2005, 09:05
посмотри как делает 1С и например phpbb2. в базе всегда хранится версия метаданных. есть некий тул (собственный), который проверяет версию, и соответственно применяет нужные изменения, чтобы довести ее до требуемой. получать разницу между метаданными для такого инструмента можно при помощи dbcomparer.