2012-11-17 2 views
1

나는 WAL 모드에서 SQLite는 데이터베이스를 가지고있다. 데이터베이스에서 VACUUM을 수행 할 때마다 다시 연결될 때 저널 모드가 DELETE으로 되돌아갑니다. 예를 들어VACUUM 데이터베이스와 WAL 모드

:

PRAMGA journal_mode; -- returns wal 
VACUUM; 
PRAGMA journal_mode; -- returns wal 
-- disconnect then reconnect 
PRAGMA journal_mode; -- returns delete 

동작 SQLite는 3.7에서 관찰되지만 표시는 3.8로 고정된다.

답변

0

-wal 파일은 자동적으로 다른 사용자가 없을 때 DB를 닫는 등이 비어있는 것으로 알려진 특정 상황에서 삭제됩니다. 다음 트랜잭션에서 필요할 때 자동으로 다시 생성됩니다.

(PRAGMA journal_mode에 의해보고) 저널 모드는이 기간 동안 변경해서는 안됩니다. ` `db.disconnect()` DB는 WAL 모드 초기에,

+1

이것은 내가 (의사 코드)'db.connect()' 'db.execute ("VACUUM")이 것입니다. 이상하게도'disconnect()'가 수행 된 후에 db가 DELETE 모드로 전환되었습니다. 진공 자체 후에 db는 여전히 WAL 모드입니다. 나는'PRAGMA journal_mode'를 사용하여 그것을 테스트하지만'-wal' 파일은 존재하지 않습니다. – ViP

관련 문제