67 lines
3.2 KiB
SQL
67 lines
3.2 KiB
SQL
-- ---------------------------------------------------------------------------------------------------------------------
|
|
-- WARNING: BACKUP YOUR DATABASE BEFORE UPGRADING
|
|
-- THIS SCRIPT IS ONLY FOR UPGRADING 1.3.4 TO 1.4.0
|
|
-- THE CURRENT VERSION CAN BE FOUND AT `myems_system_db`.`tbl_versions`
|
|
-- ---------------------------------------------------------------------------------------------------------------------
|
|
|
|
-- NOTE: BACKUP YOUR DATABASE AND SOURCE CODE FIRST
|
|
-- THIS UPGRADE MAY CAUSE DATA LOSS AND BREAK YOUR MYEMS SYSTEM
|
|
|
|
-- THIS UPGRADE SCRIPT WILL MERGE EXPRESSION TABLE INTO VIRTUAL METER TABLE
|
|
-- STOP NORMALIZATION SERVICE BEFORE RUNNING THIS SCRIPT:
|
|
-- $ sudo systemctl stop myems-normalization.service
|
|
-- AFTER RUNNING THIS UPGRADE SCRIPT,
|
|
-- UPGRADE ADMIN UI, API, AND NORMALIZATION SERVICE
|
|
-- START NORMALIZATION SERVICE
|
|
-- $ sudo systemctl start myems-normalization.service
|
|
START TRANSACTION;
|
|
CREATE TABLE IF NOT EXISTS `myems_system_db`.`tbl_virtual_meters_new` (
|
|
`id` BIGINT NOT NULL AUTO_INCREMENT,
|
|
`name` VARCHAR(255) NOT NULL,
|
|
`uuid` CHAR(36) NOT NULL,
|
|
`equation` LONGTEXT NOT NULL,
|
|
`energy_category_id` BIGINT NOT NULL,
|
|
`is_counted` BOOL NOT NULL,
|
|
`cost_center_id` BIGINT NOT NULL,
|
|
`energy_item_id` BIGINT,
|
|
`description` VARCHAR(255),
|
|
PRIMARY KEY (`id`));
|
|
|
|
CREATE TABLE IF NOT EXISTS `myems_system_db`.`tbl_variables_new` (
|
|
`id` BIGINT NOT NULL AUTO_INCREMENT,
|
|
`name` CHAR(36) NOT NULL,
|
|
`virtual_meter_id` BIGINT NOT NULL,
|
|
`meter_type` VARCHAR(32) NOT NULL COMMENT 'meter, virtual_meter, offline_meter',
|
|
`meter_id` BIGINT NOT NULL,
|
|
PRIMARY KEY (`id`));
|
|
|
|
INSERT INTO myems_system_db.tbl_virtual_meters_new
|
|
(id, name, uuid, equation, energy_category_id, is_counted, cost_center_id, energy_item_id, description)
|
|
SELECT tvm.id, tvm.name, tvm.uuid, te.equation, tvm.energy_category_id, tvm.is_counted, tvm.cost_center_id,
|
|
tvm.energy_item_id, tvm.description
|
|
FROM myems_system_db.tbl_virtual_meters tvm, myems_system_db.tbl_expressions te
|
|
WHERE tvm.id = te.virtual_meter_id ;
|
|
|
|
INSERT INTO myems_system_db.tbl_variables_new
|
|
(id, name, virtual_meter_id, meter_type, meter_id)
|
|
SELECT tv.id, tv.name, te.virtual_meter_id, tv.meter_type, tv.meter_id
|
|
FROM myems_system_db.tbl_variables tv, myems_system_db.tbl_expressions te
|
|
WHERE tv.expression_id = te.id ;
|
|
|
|
DROP TABLE IF EXISTS myems_system_db.tbl_variables;
|
|
DROP TABLE IF EXISTS myems_system_db.tbl_virtual_meters;
|
|
|
|
ALTER TABLE myems_system_db.tbl_variables_new RENAME myems_system_db.tbl_variables;
|
|
ALTER TABLE myems_system_db.tbl_virtual_meters_new RENAME myems_system_db.tbl_virtual_meters;
|
|
|
|
CREATE INDEX `tbl_variables_index_1` ON `myems_system_db`.`tbl_variables` (`virtual_meter_id`);
|
|
CREATE INDEX `tbl_variables_index_2` ON `myems_system_db`.`tbl_variables` (`meter_id`, `meter_type`, `virtual_meter_id`);
|
|
CREATE INDEX `tbl_virtual_meters_index_1` ON `myems_system_db`.`tbl_virtual_meters` (`name`);
|
|
CREATE INDEX `tbl_virtual_meters_index_2` ON `myems_system_db`.`tbl_virtual_meters` (`energy_category_id`);
|
|
CREATE INDEX `tbl_virtual_meters_index_3` ON `myems_system_db`.`tbl_virtual_meters` (`energy_item_id`);
|
|
|
|
-- UPDATE VERSION NUMBER
|
|
UPDATE `myems_system_db`.`tbl_versions` SET version='1.4.0', release_date='2021-11-14' WHERE id=1;
|
|
|
|
COMMIT;
|