Сохранение некоторых таблиц при обновлении базы данных приложения? - PullRequest
1 голос
/ 06 мая 2011

В моей базе данных sqlite3 у меня есть несколько таблиц с добавленными пользователем значениями, которые я хотел бы сохранить при обновлении приложения. Тем не менее, я хотел бы отбросить большинство других таблиц (около 10) и снова заполнить их данными из новой базы данных, которую я собираюсь отправить. В предыдущих версиях я мог просто удалить базу данных и скопировать новую. В дальнейшем это будет невозможно, потому что я позволю пользователям вводить данные в отдельные таблицы.

1 Ответ

0 голосов
/ 06 мая 2011

Вместо удаления всей базы данных и повторного заполнения с нуля, рассмотрите возможность использования DROP TABLE явно.Здоровая доза ALTER TABLE .. RENAME также может быть для того, чтобы поставить «новые» таблицы там, где были «старые» таблицы.И, возможно, очистите с помощью VACUUM в конце, чтобы сохранить порядок.

Если новые данные распространяются в новом файле базы данных, тогда рассмотрите возможность использования ATTACH DATABASE временно для операции копирования.

В моих базах данных у меня есть таблица метаданных, в которой, помимо прочего, хранится «версия базы данных» (хотя можно также использовать USER_VERSION PRAGMA ).Это позволяет коду выборочно выполнять откат по наборам изменений.

Счастливое кодирование.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...