sqlite - recuperar - para que sirve la carpeta datos antiguos de firefox
Marcadores de Firefox Estructura SQLite (5)
Intento escribir un complemento de Firefox 3 que me permita volver a etiquetar fácilmente los marcadores. Por ejemplo, tengo algunos marcadores etiquetados como "desarrollo" y algunos etiquetados como "Desarrollo" y me gustaría una manera de actualizar fácilmente todas las etiquetas "delelopment" a "Desarrollo". Desafortunadamente no puedo encontrar un complemento para hacer esto, así que pensé en crear el mío.
Al no haber desarrollado un complemento antes de haber logrado comprender los conceptos básicos, descubrí que FireFox almacena todos los marcadores en una base de datos SQLite llamada Places.sqlite. Dentro de esa base de datos hay una tabla llamada moz_bookmarks que contiene todos los marcadores, etiquetas y carpetas dentro del directorio de marcadores. La estructura de las carpetas de marcadores y sus marcadores secundarios se representa utilizando una identificación de clave externa que apunta a la id de la carpeta principal en la misma tabla que repite nuevamente hacia arriba a la Id de esa carpeta principal hasta que llegue a la raíz de los marcadores.
Sin embargo, donde me quedo estancado es cómo las etiquetas que aplicas en firefox están relacionadas con los marcadores. Cada etiqueta tiene un type = 2 y parent ID = 4. Sin embargo, no veo ninguna correlación entre esto y los marcadores reales que usan la etiqueta. Si agrego un marcador en firefox a ninguna carpeta en particular, pero le doy 2 o 3 etiquetas, su ID de carpeta principal es 5, que corresponde a "no archivado", pero no veo ninguna otra correlación con las etiquetas asociadas.
Encontré esta página Wiki en la estructura pero realmente no ayuda.
Nos está volviendo loco :( Por favor ayuda ...
No puedo ayudarte con el procedimiento, sin embargo, tal vez la extensión ''SQLite Manager'' te ayudará al menos en la parte en la que intentas descubrir qué hacer. El complemento es un administrador general, pero también contiene las bases de datos predeterminadas utilizadas por Firefox como opción estándar.
El uso de esa extensión debería ser relativamente sencillo para cambiar el nombre de las palabras clave que desee. Si solo está buscando una forma de arreglarlo, esto podría funcionar, si aún prefiere escribir su propia herramienta, quizás esta pueda al menos ayudar con las consultas;).
Probablemente ya se haya enterado usted mismo, pero las etiquetas se aplican de la siguiente manera:
El lugar central para todas las URL en la base de datos es moz_places
. La tabla moz_bookmarks
hace referencia a ella mediante la columna de la clave externa fk
.
Si etiqueta un marcador, hay varias entradas en moz_bookmarks
, todas tienen la misma referencia fk
: la primera es el marcador en sí (tiene el título en la columna del title
) Para cada etiqueta, hay una entrada adicional en moz_bookmarks
tiene la misma clave externa fk
y se refiere a la etiqueta en el coumn parent
(que apunta a la fila moz_bookmarks
para la etiqueta).
Si tiene un marcador '' http://.com '' titulado '''' con las etiquetas ''programación'' e ''información'', obtendrá:
moz_places
----------
id url (some more)
3636 http://.com
moz_bookmarks
-------------
id type fk parent title (other columns omitted...)
332 1 3636 5 (parent=5 -> unfiled folder)
333 2 (NULL) 4 programming (programming tag, parent=4 -> tags folder)
334 1 3636 333 (NULL) (link to ''programming'' tag)
335 2 (NULL) 4 info (info tag, parent=4 see above)
336 1 3636 335 (NULL) (link to ''info'' tag)
Espero que esto ayude...
Como MartinStettner sugirió que las estructuras de etiquetas se basan en la clave externa para la identificación de la etiqueta, primero debe determinar moz_bookmark.id para la etiqueta de destino.
Este PDF de Mozilla explica la relación en sqllite ...
Las etiquetas dan como resultado dos nuevas entradas en moz_bookmarks. El primero es la etiqueta, con parent = 4 (tags), y fk = NULL. La segunda entrada sigue a la primera y tiene la etiqueta anterior como su padre, y fk apunta a la entrada correcta en moz_places.
Usando eso como una guía ... Una vez que conozcas la identificación para la etiqueta, puedes unirte a moz_places.id ON moz_bookmarks.fk ...
SELECT moz_places.id, moz_places.url, moz_places.title, moz_bookmarks.parent
FROM moz_places
LEFT OUTER JOIN moz_bookmarks
ON moz_places.id = moz_bookmarks.fk
WHERE moz_bookmarks.parent = N
Exportar ...
Tampoco puedo ayudar mucho; encontré tu pregunta buscando el mismo tipo de respuestas ...
Lo que he logrado encontrar es la documentación relevante de Mozilla. El sistema de marcador se llama Lugares y las tablas de la base de datos se describen en https://developer.mozilla.org/en-US/docs/The_Places_database .
Debido a que tuve que cavar más profundo para encontrar esta información, aquí está la solicitud para recuperar la url, el título y la fecha de creación de todos sus marcadores:
SELECT h.url, b.title, b.dateAdded
FROM moz_places h
JOIN moz_bookmarks b
ON h.id = b.fk;
Espero que ayude a las personas que buscan esta respuesta.