Is it possible to open a locked sqlite database in

2019-04-04 19:38发布

I'd like to open the chromium site data (in ~/.config/chromium/Default) with python-sqlite3 but it gets locked whenever chromium is running, which is understandable since transactions may be made. Is there a way to open it in read-only mode, ensuring that I can't corrupt the integrity of the db while chromium is using it?

2条回答
smile是对你的礼貌
2楼-- · 2019-04-04 19:43

Chromium is holding a database lock for long periods of time? Yuck! That's really not a very good idea at all. Still, not your fault…

You could try just copying the database file (e.g., with the system utility cp) and using that snapshot for reading purposes; SQLite keeps all its committed state in a single file per database. Yes, there's a chance of seeing a partial transaction, but you will definitely not have lock problems on Unix as SQLite definitely doesn't use mandatory locks. (This might well not work on Windows due to the different locking scheme there.)

查看更多
甜甜的少女心
3楼-- · 2019-04-04 19:55

I believe it depends on the lock set by the transaction.

http://www.sqlite.org/lockingv3.html#shared_lock http://www.sqlite.org/lang_transaction.html

SQLite exclusive transactions lock both read and write where immediate and deferred transactions will still allow readers.

So it really depends on the transactions used by Chromium.

查看更多
登录 后发表回答