diff --git a/EdgeManager/EController/EConfigure.php b/EdgeManager/EController/EConfigure.php index 02b367c..bc3296e 100644 --- a/EdgeManager/EController/EConfigure.php +++ b/EdgeManager/EController/EConfigure.php @@ -50,30 +50,13 @@ class EConfigure { } function remove_server() { - pg_query($this -> dbconn, "BEGIN"); - $exists = pg_query($this -> dbconn, sprintf( - "SELECT EXISTS( - SELECT 1 FROM hf_mes_scada_edgeserver_controller_device - WHERE server_id = '%s' - )", $this -> post -> id - )); - if (pg_fetch_assoc($exists)['exists'] === 't') { - pg_query($this -> dbconn, "ROLLBACK"); - return "REMAINING"; - } else { - $res = pg_delete( - $this -> dbconn, - 'hf_mes_scada_edgeserver_controller_server', - (array) $this -> post, - ); - if ($res) { - pg_query($this -> dbconn, "COMMIT"); - return true; - } else { - pg_query($this -> dbconn, "ROLLBACK"); - return false; - } - } + $res = pg_delete( + $this -> dbconn, + 'hf_mes_scada_edgeserver_controller_server', + (array) $this -> post, + ); + + return $res ? true : "REMAINING"; } function update_server() { diff --git a/EdgeManager/Init.php b/EdgeManager/Init.php index f77e4c3..1a0f80a 100644 --- a/EdgeManager/Init.php +++ b/EdgeManager/Init.php @@ -12,8 +12,20 @@ function init_db($server_name, $port, $user, $password) { pg_query($dbconn, "CREATE EXTENSION IF NOT EXISTS timescaledb"); pg_query( $dbconn, - "CREATE TYPE category - AS ENUM ('DEVICE_STATUS', 'ITEM_ID', 'DEVICE_DATA', 'PROCESS_DATA', 'RESULT_DATA', 'STATISTICAL_DATA')" + "DO $$ BEGIN + CREATE TYPE category + AS ENUM ( + 'DEVICE_STATUS', + 'ITEM_ID', + 'DEVICE_DATA', + 'PROCESS_DATA', + 'RESULT_DATA', + 'STATISTICAL_DATA' + ); + EXCEPTION + WHEN duplicate_object + THEN null; + END $$" ); pg_query($dbconn, "CREATE TABLE IF NOT EXISTS hf_mes_scada_data_capture_node_configure ( id serial2 primary key, @@ -42,14 +54,17 @@ function init_db($server_name, $port, $user, $password) { id serial2 primary key, code text, name text NOT NULL, - server_id serial2 references hf_mes_scada_edgeserver_controller_server(id), + server_id serial2 + REFERENCES hf_mes_scada_edgeserver_controller_server(id), conf json, create_date timestamp NOT NULL DEFAULT NOW(), note text )"); pg_query($dbconn, "CREATE TABLE IF NOT EXISTS hf_mes_scada_edgeserver_controller_command ( id serial8 primary key, - server_id serial2 references hf_mes_scada_edgeserver_controller_server(id), + server_id serial2 + REFERENCES hf_mes_scada_edgeserver_controller_server(id) + ON DELETE CASCADE, device_name text, command text, create_date timestamp NOT NULL DEFAULT NOW(),