Skip to content

Migration script

  • MSSQL
  • Solar power
  • v1 to v2
IF EXISTS (SELECT NULL FROM SYS.EXTENDED_PROPERTIES WHERE [major_id] = OBJECT_ID('teleport_solar_power') AND [name] = N'version' AND [minor_id] = 0)
EXEC sys.sp_updateextendedproperty
@name=N'version',
@value=2,
@level0type=N'SCHEMA',
@level0name=N'dbo',
@level1type=N'TABLE',
@level1name=N'teleport_solar_power'
ELSE
EXEC sys.sp_addextendedproperty
@name=N'version',
@value=2,
@level0type=N'SCHEMA',
@level0name=N'dbo',
@level1type=N'TABLE',
@level1name=N'teleport_solar_power';
ALTER TABLE teleport_solar_power
ADD alarms nvarchar(4000) DEFAULT NULL; -- See solar alarms under error codes section. If not null, will contain a JSON aray of string elements.;
IF NOT EXISTS (SELECT * FROM sysobjects WHERE name='teleport_solar_power_inverters' and xtype='U')
CREATE TABLE "teleport_solar_power_inverters"
(
"id" int not null identity(1,1),
"teleport_hash_id" varchar(32) NOT NULL,
"asset_identifier" varchar(128) NOT NULL,
"slave_id" int NOT NULL,
"attempt" int NOT NULL,
"active_power" int DEFAULT NULL, -- in W
"generated_energy" bigint DEFAULT NULL, -- in Wh
"active_power_limit_percentage" decimal(4,1) DEFAULT NULL,
"alarms" nvarchar(4000) DEFAULT NULL, -- See solar alarms under error codes section. If not null, will contain a JSON aray of string elements.
"scheduled" bit 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" datetime NOT NULL, -- when read-out started
"created_at" datetime NOT NULL, -- when written to the table
PRIMARY KEY ("id"),
INDEX "inverters" ("slave_id","created_at"),
INDEX "teleport" ("teleport_hash_id","asset_identifier","created_at"),
INDEX "teleport_asset" UNIQUE ("teleport_hash_id", "asset_identifier", "slave_id", "measured_at") WITH (IGNORE_DUP_KEY = ON)
);