From 2548c6207be79511ceae9b4376b39187077157e3 Mon Sep 17 00:00:00 2001 From: Siphonight Date: Wed, 23 Sep 2026 07:43:53 +0200 Subject: [PATCH] =?UTF-8?q?Docs=20=C2=A716.ter=20:=20pi=C3=A8ge=20WAL=20au?= =?UTF-8?q?=20seed=20(extraire=20db+wal=20c=C3=B4te=20=C3=A0=20c=C3=B4te?= =?UTF-8?q?=20apr=C3=A8s=20un=20force-stop)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/DEVELOPPEMENT.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/DEVELOPPEMENT.md b/docs/DEVELOPPEMENT.md index f94ea80..4e50956 100644 --- a/docs/DEVELOPPEMENT.md +++ b/docs/DEVELOPPEMENT.md @@ -2076,6 +2076,14 @@ adb shell run-as com.hormonetrack rm -f databases/hormonetrack.db-wal \ databases/hormonetrack.db-shm # WAL périmé sinon ! (checkpoint implicite fait par le seed) ``` +⚠️ **Piège WAL constaté à la v1.9.8** : après un `force-stop` (= SIGKILL, PAS de +checkpoint), le schéma entier peut vivre SEULEMENT dans le `-wal` — extraire la +seule `hormonetrack.db` donne un fichier de 4 Ko SANS tables (`no such table: +treatments` au seed). Solution : extraire `hormonetrack.db` **ET** +`hormonetrack.db-wal` CÔTE À CÔTE sous leurs noms d'origine (ex. `/tmp/hrtseed/`) +— sqlite rejoue le WAL à l'ouverture et le fusionne à la fermeture (le `-wal` +disparaît après le seed) ; on pousse alors la seule `.db` résultat. + Règles du seed (le script les impose) : colonnes = noms de propriétés Kotlin (Room n'applique pas de snake_case), enums stockés en String — on insère SEULEMENT des lignes, on ne touche NI au schéma NI à `room_master_table`