feat: initialize sensors database table and index on server startup
This commit is contained in:
@@ -19,6 +19,25 @@ async function checkDB() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function initDB() {
|
||||||
|
try {
|
||||||
|
await pool.query(`
|
||||||
|
CREATE TABLE IF NOT EXISTS sensors (
|
||||||
|
id VARCHAR(10) PRIMARY KEY,
|
||||||
|
name VARCHAR(100) NOT NULL,
|
||||||
|
code_hash TEXT NOT NULL UNIQUE,
|
||||||
|
is_active BOOLEAN DEFAULT TRUE,
|
||||||
|
last_seen TIMESTAMP DEFAULT NOW(),
|
||||||
|
created_at TIMESTAMP DEFAULT NOW()
|
||||||
|
);
|
||||||
|
CREATE INDEX IF NOT EXISTS idx_sensors_code_hash ON sensors(code_hash);
|
||||||
|
`);
|
||||||
|
console.log('[DB] Database schema initialized (sensors table ensured)');
|
||||||
|
} catch (error) {
|
||||||
|
console.error('[DB] Schema initialization failed:', error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Restituisce i dati del sensore in base al token ricevuto.
|
* Restituisce i dati del sensore in base al token ricevuto.
|
||||||
* Il token viene hashato prima della comparazione con il database.
|
* Il token viene hashato prima della comparazione con il database.
|
||||||
|
|||||||
@@ -76,10 +76,11 @@ app.get('/sessions/:sensorId/csv', async (req, res) => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// --- HTTP server + WebSocket per watchers live ---
|
|
||||||
|
|
||||||
const server = app.listen(process.env.PORT, '0.0.0.0', () => {
|
const PORT = process.env.PORT || 3000;
|
||||||
console.log(`Realtime on port ${process.env.PORT}`);
|
const server = app.listen(PORT, '0.0.0.0', async () => {
|
||||||
|
console.log(`Realtime on port ${PORT}`);
|
||||||
|
await require('./helper/authdb').initDB();
|
||||||
});
|
});
|
||||||
|
|
||||||
const wss = new WebSocket.Server({ server, path: '/live' });
|
const wss = new WebSocket.Server({ server, path: '/live' });
|
||||||
|
|||||||
Reference in New Issue
Block a user