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). Полезно при тестировании.