Vorrei aprire i dati del sito chromium (in ~/.config/chromium/Default) con python-sqlite3 ma viene bloccato ogni volta che si esegue chromium, il che è comprensibile dal momento che è possibile effettuare transazioni. C'è un modo per aprirlo in modalità di sola lettura, assicurando che non posso corrompere l'integrità del db mentre cromo lo sta usando?È possibile aprire un database sqlite bloccato in modalità di sola lettura?
risposta
Credo che dipenda dal blocco impostato dalla transazione.
http://www.sqlite.org/lockingv3.html#shared_lock http://www.sqlite.org/lang_transaction.html
SQLite transazioni blocco esclusivo di lettura e scrittura in cui le transazioni immediate e differite saranno ancora permettere ai lettori.
Quindi dipende davvero dalle transazioni utilizzate da Chromium.
Chromium detiene un blocco del database per lunghi periodi di tempo? Che schifo! Non è davvero una buona idea. Eppure, non tua colpa ...
Si potrebbe provare semplicemente copiando il file di database (ad esempio, con l'utilità di sistema cp
) e utilizzando tale snapshot per scopi di lettura; SQLite mantiene tutto lo stato di commit in un singolo file per database. Sì, c'è la possibilità di vedere una transazione parziale, ma sicuramente non avrai problemi di blocco su Unix dato che SQLite sicuramente non usa i blocchi obbligatori. (Potrebbe non funzionare su Windows a causa del diverso schema di blocco in questo caso.)
Non è necessariamente colpa di cromo. Ficcanaso, ho trovato [questo] (http://mail.python.org/pipermail/python-list/2009-July/1211171.html) un messaggio utile che ha evidenziato che la libreria pysqlite non fornisce un'interfaccia a tutti delle funzionalità di sqlite perché è compatibile con DB-API. Quindi potrebbe essere che quando apro il db con pysqlite, lo sto facendo senza dire in modalità lettura-scrittura. Ha indicato a APSW di utilizzare il flag SQLITE_OPEN_READONLY all'avvio di una connessione. Lo controllerò ora. – ladaghini
- 1. java + sqlite: come aprire il database in sola lettura?
- 2. Python SQLite: database è bloccato
- 3. Modifica la modalità database SQLite in lettura/scrittura
- 4. NHibernate Linq in modalità di sola lettura
- 5. Apre un file come modalità di sola lettura su windows
- 6. sql connessione aperta in modalità di sola lettura
- 7. HIbernate InvalidDataAccessApiUsageException - modalità di sola lettura
- 8. SDK DevServer App Modalità di sola lettura?
- 9. Django unittest test database di sola lettura
- 10. Tentativo di scrivere un database di sola lettura - System.Data.SQLite
- 11. È possibile ottenere un accesso multithreading scalabile a un database SQLite in memoria
- 12. Come posso aprire un documento di Word in sola lettura da Perl?
- 13. È possibile rendere un oggetto "Sola lettura" a un metodo
- 14. Python/SQLite - database bloccato nonostante grandi timeout
- 15. Posso aprire una console di rotaie in modalità di sola lettura?
- 16. È possibile imporre il comportamento di sola lettura con SqlCommand?
- 17. Sqlite .NET e Entity Framework: "tenta di scrivere un database di sola lettura"
- 18. Database sqlite3 di sola lettura sicuro
- 19. sqlite3: database principale di sola lettura e ATTACH
- 20. Modifica file in modalità di sola lettura in Python
- 21. Crea connessione di database MySQL di sola lettura in Django
- 22. SQLite - Impossibile aprire il file di database
- 23. Metti l'intera installazione di gitlab in modalità di sola lettura
- 24. Impossibile aggiornare il database perché è di sola lettura
- 25. È possibile la proprietà auto-implementata di sola lettura?
- 26. Imposta VIM per aprire i file in modalità "sola lettura" per impostazione predefinita?
- 27. Aprire un file in una scheda in modalità readonly
- 28. MySQL: come trasformare un database in sola lettura?
- 29. Apertura del database sqlite3 da python in modalità di sola lettura
- 30. OperationalError: database è bloccato
+1: questo è il modo per farlo _within_ SQLite. –