v1.9.19: S88/write_data.py - self-heal CREATE TABLE IF NOT EXISTS
Protège contre le cas où l'OTA n'appelle pas create_db.py (problème bash classique: le script d'OTA est chargé en mémoire au lancement, le git pull du step 1 met à jour le fichier sur disque mais bash continue d'exécuter l'ancienne version). Le script crée la table data_S88 lui-même au démarrage. Schéma dupliqué de create_db.py — à garder synchro. Pattern à appliquer aux futurs capteurs pour éviter cette classe de bug. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -83,6 +83,15 @@ def main():
|
|||||||
conn = sqlite3.connect(DB_PATH)
|
conn = sqlite3.connect(DB_PATH)
|
||||||
cursor = conn.cursor()
|
cursor = conn.cursor()
|
||||||
|
|
||||||
|
# Self-heal: ensure the table exists even if create_db.py was skipped during OTA.
|
||||||
|
# Duplicates the canonical schema from sqlite/create_db.py — keep them in sync.
|
||||||
|
cursor.execute("""
|
||||||
|
CREATE TABLE IF NOT EXISTS data_S88 (
|
||||||
|
timestamp TEXT,
|
||||||
|
CO2 INTEGER
|
||||||
|
)
|
||||||
|
""")
|
||||||
|
|
||||||
port = get_config(cursor, "S88_port", DEFAULT_PORT)
|
port = get_config(cursor, "S88_port", DEFAULT_PORT)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
|||||||
@@ -1,5 +1,18 @@
|
|||||||
{
|
{
|
||||||
"versions": [
|
"versions": [
|
||||||
|
{
|
||||||
|
"version": "1.9.19",
|
||||||
|
"date": "2026-06-01",
|
||||||
|
"changes": {
|
||||||
|
"features": [],
|
||||||
|
"improvements": [
|
||||||
|
"S88/write_data.py: self-heal CREATE TABLE IF NOT EXISTS au démarrage. Protège contre le cas où l'OTA n'a pas appelé create_db.py (problème classique bash qui exécute l'ancien script chargé en mémoire avant le git pull). Le script crée la table data_S88 lui-même au 1er run si elle manque."
|
||||||
|
],
|
||||||
|
"fixes": [],
|
||||||
|
"compatibility": []
|
||||||
|
},
|
||||||
|
"notes": "Le schéma de la table est dupliqué dans write_data.py et create_db.py — garder synchro. C'est volontaire pour rendre le script self-contained et éviter les blocages OTA. Pattern à appliquer aux futurs nouveaux capteurs."
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"version": "1.9.18",
|
"version": "1.9.18",
|
||||||
"date": "2026-06-01",
|
"date": "2026-06-01",
|
||||||
|
|||||||
Reference in New Issue
Block a user