====== Présentation du logiciel ======
\\
====== Installation de Zotero ======
\\
====== Accès direct à la base de donneés de Zotero ======
Documentation:
* Liste à puce[[https://www.zotero.org/support/dev/client_coding/direct_sqlite_database_access|Direct Access to the Zotero SQLite Database]]
* [[https://www.zotero.org/support/zotero_data|Zootero data directory and database restore]]
* [[https://www.zotero.org/support/dev/client_coding/javascript_api|Zotero JavaScript API]] for local Zotero instance
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;
====== Zotero database locked ======
Lorsque Zotero est activé, la base de donnée SQLite qui stocke les données est inaccessible, afin d'en protéger le contenu.
===== Meilleure solution =====
La meilleure solution est celle de créer une copie de la base zotero.sqlite et d'accéder à celle-ci avec les autres clients SQL.
Créer préalablement un dossier //zotero_copy// à côté du dossier de Zotero.
Effectuer ensuite la commande copier ci-dessous (cp) après chaque modification de la base via le
cd [PATH to zotero.sqlite]
cp -pv zotero.sqlite ../zotero_copy/zotero.sqlite
On peut aussi effectuer cette opération manuellement.
===== Solution trouvée dans un forum =====
**Always make a copy of Zotero database first !**
cp -pv zotero.sqlite zotero.sqlite2
rm -f zotero.sqlite
mv zotero.sqlite2 zotero.sqlite
Source: [[https://stackoverflow.com/questions/16419654/effectively-unlocking-an-sqlite-database|effectively unlocking an SQLite database]]
Repair database: [[https://www.zotero.org/utils/dbfix/|Zotero Database Repair Tool]]Your database has been rebuilt.
The new file is available here:
https://www.zotero.org/utils/dbfix/files/XG0S06XU/zotero.sqlite.zip (11605KB)
After downloading this file, unzip it, close Zotero, and place the extracted zotero.sqlite in your Zotero data directory, replacing the existing file. If there is a zotero.sqlite.is.corrupt file in the directory, delete it. (Be sure you've made a backup of the entire 'zotero' folder before performing these steps!)
When you're done, restart Zotero.
Please reference Upload ID 5c7841428fcf6 in any correspondence with the Zotero team regarding this repair.
===== Accès depuis une autre base de données SQLite =====
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;