Ceci est une ancienne révision du document !
Documentation: Direct Access to the Zotero SQLite Database
CREATE VIEW v_zotero_items AS SELECT t1.itemID, t2.typeName, substr(t6.VALUE, instr(t6.VALUE, ' ') + 1) AS datation, group_concat(t4.VALUE, ' # ') AS title -- group_concat(t4.fieldName) as property, -- group_concat(t5.value), -- group_concat('itemData' || t5.valueID) AS id FROM items t1 JOIN itemTypes t2 ON t2.itemTypeID = t1.itemTypeID LEFT JOIN itemData t3 ON t3.itemID = t1.itemID AND t3.fieldID IN (110, 115,12) LEFT JOIN itemDataValues t4 ON t4.valueID = t3.valueID LEFT JOIN itemData t5 ON t5.itemID = t1.itemID AND t5.fieldID IN (14) LEFT JOIN itemDataValues t6 ON t6.valueID = t5.valueID WHERE t2.itemTypeID NOT IN (14, 1) GROUP BY t1.itemID, t2.typeName;
Apparemment marche seulement avec les clients à accès direct et non avec ceux qui utilisent le connecteur JDBC.
ATTACH '/Users/fberetta/Zotero/zotero.sqlite' AS zotero; PRAGMA database_list; SELECT * FROM zotero.v_zotero_items LIMIT 10;
Si la base de données de Zotero est inaccessible (message d'erreur: database is locked) il faut simplement copier la base de données, la coller dans un autre dossier, puis la recopier de nouveau et la recoller dans le dossier d'origine:
If you want to remove a "database is locked" error then follow these steps: Copy your database file to some other location. Replace the database with the copied database. This will dereference all processes which were accessing your database file. (Source: [[https://stackoverflow.com/questions/151026/how-do-i-unlock-a-sqlite-database/1027493#1027493|How do I unlock a SQLite database?]])
Ne surtout pas effacer le fichier zotero.sqlite-journal ! Et faire aussi des copies de sauvegarde férquentes et régulières de la base Zotero.
Mise à jour des données de la table zotero_data. Exécuter ce script SQL:
DELETE FROM zotero_data; INSERT INTO zotero_data (itemId, typeName, datation, title) SELECT itemID, typeName, datation, title FROM zotero.v_zotero_items;