ORMLite reset все таблицы
У меня есть приложение, которое использует ORMLite. Мне нужно создать функцию для reset всего db (в основном мне нужно удалить все строки из каждого db, reset индексов автоинкремента и reset).
Я, вероятно, могу сделать это, запустив усечение в каждой таблице, но для ORMLite существует определенный метод для этого?
Ответы
Ответ 1
ORMLite не имеет специального метода для reset всего db. Он поддерживает метод TableUtils.clearTable(connectionSource, dataClass))
, который удаляет все строки из таблицы, что очищает индекс, но это не будет reset автоинкремент. Кроме того, я не уверен, что "reset indexes" подразумевает больше, чем очищение. Процесс сброса автоинкремента будет чрезвычайно зависимым от базы данных, поэтому ORMLite, скорее всего, никогда не получит встроенную поддержку.
Думаю, ваш лучший выбор - отбросить таблицу с помощью TableUtils.dropTable()
, а затем повторно создать его с помощью TableUtils.createTable()
.
Ответ 2
Существует один способ: удалить базу данных, но этот метод обычно используется, когда пользователь выходит из системы и регистрируется с другим идентификатором пользователя и т.д., при создании входа в систему db и при выходе из системы удаляется db.
mContext.deleteDatabase("xxxxxx");
где "xxxxx" - это имя базы данных.
Ответ 3
Вы также можете использовать TableUtils.createTableIfNotExists(source, dataClass). Полезно при тестировании.