Решение
Чтобы открыть таких баз данных * с помощью sqlite-browser
, , вам необходимо скопировать все три файла . Все должны быть в одном каталоге.
* Базы данных хранятся в нескольких файлах, как указано в вопросе.
Почему три файла?
Согласно документации, начиная с версии 1.1.0
, Room использует write-ahead logging
в качестве режима журнала по умолчанию для устройств с достаточным объемом оперативной памяти и работающих на уровне API 16 или выше. Это было Truncate
для всех устройств до этой версии. write-ahead logging
имеет другую внутреннюю структуру по сравнению с Truncate
.
Посмотрите на временные файлы, используемые SQLite
время от времени:
До версии 1.1.0
Начиная с версии 1.1.0
* *
тысяча сорок-девять
Если вы хотите явно изменить режим журнала на Truncate
, вы можете сделать это следующим образом. Но не рекомендуется , потому что WAL
намного лучше по сравнению с Truncate
.
public static void initialize(Context context) {
sAppDatabase = Room.databaseBuilder(
context,
AppDatabase.class,
DATABASE_NAME)
.setJournalMode(JournalMode.TRUNCATE).build();
}
Можно ли переместить его в один файл без изменения на Truncate
?
Да, это так. Запросите следующий оператор для базы данных.
pragma wal_checkpoint(full)
Это подробно обсуждается здесь здесь .