Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
td_histoire_numerique:zotero [2019/02/27 18:14] Francesco Beretta [Accès direct à la base de donneés de Zotero] |
td_histoire_numerique:zotero [2019/03/01 17:29] (Version actuelle) Francesco Beretta [Meilleure solution] |
||
---|---|---|---|
Ligne 2: | Ligne 2: | ||
====== Présentation du logiciel ====== | ====== Présentation du logiciel ====== | ||
+ | \\ | ||
Ligne 7: | Ligne 8: | ||
+ | \\ | ||
====== Accès direct à la base de donneés 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 | ||
<code sql> | <code sql> | ||
Ligne 35: | Ligne 40: | ||
+ | |||
+ | ====== 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 | ||
+ | |||
+ | <code bash> | ||
+ | cd [PATH to zotero.sqlite] | ||
+ | cp -pv zotero.sqlite ../zotero_copy/zotero.sqlite | ||
+ | </code> | ||
+ | |||
+ | On peut aussi effectuer cette opération manuellement. | ||
+ | |||
+ | |||
+ | ===== Solution trouvée dans un forum ===== | ||
+ | |||
+ | |||
+ | **Always make a copy of Zotero database first !** | ||
+ | |||
+ | <code bash> | ||
+ | cp -pv zotero.sqlite zotero.sqlite2 | ||
+ | rm -f zotero.sqlite | ||
+ | mv zotero.sqlite2 zotero.sqlite | ||
+ | </code> | ||
+ | |||
+ | |||
+ | 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. | ||
+ | |||
+ | <code> | ||
+ | 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. | ||
+ | </code> | ||
===== Accès depuis une autre base de données SQLite ===== | ===== Accès depuis une autre base de données SQLite ===== | ||
Ligne 40: | Ligne 94: | ||
<code sql> | <code sql> | ||
- | ATTACH '/Users/fberetta/Zotero/zotero_copie.sqlite' as zotero; | + | ATTACH '/Users/fberetta/Zotero/zotero.sqlite' as zotero; |
PRAGMA database_list; | PRAGMA database_list; | ||
select * FROM zotero.v_zotero_items limit 10; | select * FROM zotero.v_zotero_items limit 10; | ||
</code> | </code> | ||
+ | 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: | ||
+ | <code sql> | ||
+ | DELETE FROM zotero_data; | ||
+ | INSERT INTO zotero_data (itemId, typeName, datation, title) | ||
+ | SELECT itemID, typeName, datation, title FROM zotero.v_zotero_items; | ||
+ | </code> | ||