Что такое" - журнал " SQLite база данных в Android?
в каталоге базы данных моего приложения andoid (/data/data / com.меня.myApp / databases), для каждой базы данных sqlite, которую я создаю, есть соответствующая база данных с тем же именем с добавлением "-journal" к ее имени.
Эл.г: данных mydatabase, данных mydatabase-журнал, myOtherDatabase.db, myOtherDatabase.db-journal
Что это?
и
Если я предоставляю предварительно заполненные базы данных для моего приложения (согласно: http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/) мне нужно включить их также?'
1 ответов
такие -journal
файлы не должны (и должны не) распространяется.
это потому, что различные файлы журнала представляют временные данные (ref. использование SQLite временных файлов диска) используется SQLite. В частности Это откат журнал.
журнал отката-это временный файл, используемый для реализации возможностей атомной фиксации и отката в SQLite. (Для детального обсуждение того, как это работает, см. отдельный документ под названием Atomic Commit в SQLite.) Журнал отката всегда находится в том же каталоге, что и файл базы данных, и имеет то же имя, что и файл базы данных, за исключением 8 символов "-journal".
журнал отката обычно создается при первом запуске транзакции и обычно удаляется при фиксации или откате транзакции. Файл журнала отката необходим для реализации atomic возможности фиксации и отката SQLite. Без журнала отката SQLite не сможет откатить незавершенную транзакцию, и если сбой или потеря мощности произошли в середине транзакции, вся база данных, вероятно, будет повреждена без журнала отката.
в целом -journal
файлы должны существовать только , когда существует открытая база данных SQLite - или, скорее, запущенная транзакция-но может управляться через PRAGMA journal_mode. С настройками pragma по умолчанию -journal
файлы будут удалены.
режим журнала удаления-это нормальное поведение. В режиме удаления журнал отката удаляется при завершении каждой проводки. Действительно, операция удаления-это действие, которое приводит к фиксации транзакции.
обязательно только скопировать файлы базы данных, когда база данных не открыл и все журналы были удалены (или очищены) самим SQLite; это означает, что все транзакции были завершены, и база данных находится в согласованном состоянии.