Skip to content

Migration script

  • PostgreSQL
  • Solar power
  • v1 to v2
ALTER TABLE teleport_solar_power
ALTER COLUMN generated_energy TYPE decimal(23, 3) USING generated_energy::decimal(23, 3),
ADD COLUMN alarms JSON DEFAULT NULL,
ADD COLUMN scheduled BOOLEAN;
CREATE TABLE teleport_solar_power_inverters (
"id" serial constraint teleport_solar_power_inverters_pkey primary key,
"teleport_hash_id" varchar(32) NOT NULL,
"asset_identifier" varchar(128) NOT NULL,
"slave_id" int NOT NULL,
"attempt" int NOT NULL,
"active_power" decimal(23, 3), -- in W
"generated_energy" decimal(23, 3), -- in Wh
"active_power_limit_percentage" decimal(7,4),
"alarms" jsonb, -- if not null, will contain a JSON array of string elements. see alarms section
"scheduled" boolean NOT NULL, -- false for measurements that are not part of the regular reporting interval, eg. directly after command execution and at Teleport initialisation
"measured_at" timestamptz NOT NULL, -- when read-out started
"created_at" timestamptz NOT NULL -- when written to the table
);
CREATE INDEX teleport_solar_power_inverters_inverters_idx ON teleport_solar_power_inverters (slave_id, created_at);
CREATE INDEX teleport_solar_power_inverters_teleport_idx ON teleport_solar_power_inverters (teleport_hash_id, asset_identifier, created_at);
CREATE UNIQUE INDEX teleport_solar_power_inverters_teleport_asset_idx ON teleport_solar_power_inverters (teleport_hash_id, asset_identifier, slave_id, measured_at);
COMMENT ON TABLE teleport_solar_power IS '{"version":2}';
COMMENT ON TABLE teleport_solar_power_inverters IS '{"version":2}';