graphicek/server/database/migrations/1661668953214_migrate_senso...

32 lines
994 B
MySQL
Raw Normal View History

2022-08-28 11:56:03 +02:00
/* Add rows for sensors */
INSERT INTO sensors (ident, name, auth_key)
SELECT
2022-08-28 19:09:48 +02:00
vals.sensor,
2022-08-28 11:56:03 +02:00
IFNULL(
2022-08-28 19:09:48 +02:00
(SELECT c.value FROM sensor_config c WHERE c.sensor = vals.sensor AND c.key = 'name'),
2022-08-28 11:56:03 +02:00
sensor
) as "name",
hex(randomblob(32)) as "auth_key"
2022-08-28 19:09:48 +02:00
FROM sensor_values vals
2022-08-28 11:56:03 +02:00
GROUP BY sensor;
/* We need to add FK key and the only way is to create new table */
/* So we rename old table, create a new one and migrate the data there */
ALTER TABLE sensor_values RENAME TO sensor_values_old;
CREATE TABLE IF NOT EXISTS sensor_values (
timestamp INTEGER NOT NULL,
sensor_id INTEGER NOT NULL,
value REAL NOT NULL,
FOREIGN KEY (sensor_id) REFERENCES sensors(id)
);
INSERT INTO sensor_values (timestamp, sensor_id, value)
SELECT timestamp, (SELECT s.id FROM sensors s WHERE s.ident = sensor), value
FROM sensor_values_old;
DROP TABLE sensor_values_old;
/* this column was temporary */
ALTER TABLE sensors DROP COLUMN ident;