2011-10-22 21 views
10

Me gustaría abrir los datos del sitio de cromo (en ~/.config/chromium/Default) con python-sqlite3 pero se bloquea cada vez que se ejecuta Chrome, lo cual es comprensible ya que se pueden realizar transacciones. ¿Hay alguna manera de abrirlo en modo de solo lectura, asegurando que no puedo dañar la integridad de la base de datos mientras el cromo la está usando?¿Es posible abrir una base de datos sqlite bloqueada en modo solo lectura?

Respuesta

3

Chromium mantiene bloqueado la base de datos durante largos periodos de tiempo? ¡Yuck! Esa no es realmente una muy buena idea. Aún así, no su culpa ...

Usted podría intentar simplemente copiar el archivo de base de datos (por ejemplo, con el sistema de servicios públicos cp) y el uso de esa instantánea para la lectura; SQLite mantiene todo su estado comprometido en un único archivo por base de datos. Sí, existe la posibilidad de ver una transacción parcial, pero definitivamente no tendrás problemas de bloqueo en Unix ya que SQLite definitivamente no usa bloqueos obligatorios. (Esto podría no funcionar en Windows debido a los diferentes esquemas de bloqueo allí).

+2

No es necesariamente culpa del cromo. Al husmear, encontré [este] (http://mail.python.org/pipermail/python-list/2009-July/1211171.html) un mensaje útil que señalaba que la biblioteca pysqlite no proporciona una interfaz para todos de las características de sqlite porque es compatible con DB-API. Entonces podría ser que cuando abro el db con pysqlite, lo haga sin decir en modo lectura-escritura. Señaló a APSW para usar el indicador SQLITE_OPEN_READONLY al iniciar una conexión. Voy a verlo ahora. – ladaghini

Cuestiones relacionadas