Есть несколько аспектов этого.Во-первых, управление версиями.Вам нужен какой-то способ привязать версию teeh db к версии программы, может быть что-то такое же простое, как таблица с номером версии в ней.Вы также должны проверить это при выполнении приложения.
Один забавный сценарий - вы успешно «обновляете» приложение и базу данных, а затем по какой-либо причине по эксплуатации клиент восстанавливает предыдущую версию базы данных, или если выВы находитесь на частом цикле патчей, вы должны делать каждый патч по порядку или можете их наверстать.Хотите ли вы иметь дело только с обновлением приложения или только базы данных по-другому?
Нет единого правильного пути для этого, вам нужно посмотреть, какие изменения вы делаете, и какой уровень сложности вы готовы поддерживатьчтобы справиться со всем, что могло пойти не так.
Пара вещей, на которые стоит обратить внимание.Две базы данных, одна для статических данных «только для чтения», а другая для более динамичных данных.Обновление статических данных может быть просто восстановлением из ресурса в пакете обновления.
Другой способ заключается в том, сколько вы можете сделать с метаданными, хранящимися в таблицах базы данных.Например, версия на основе xsd для описания ваших объектов вместо конкретного класса.Это относится к вашей базе данных только для чтения, теперь вы обновили код и приложение с помощью восстановления и, возможно, некоторых преобразований.
Множество путей, просто помните, что «пользователи» всегда найдут способ заставить вас выглядетькак eejit, делая то, что вы никогда не думали, что они будут делать.
Чем сложнее вы делаете систему, тем больше шансов на вышесказанное.
И последнее, но не менее важное, не принимайтекороткие пути преобразования версий данных, если вы потеряете целостность данных, все остальное, что вы делаете, будет потрачено впустую.