You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

117 lines
3.5 KiB

-- You should not modify if this have pushed to Github, unless it does serious wrong with the db.
BEGIN TRANSACTION;
-- Create new monitor_checks table
create table monitor_checks
(
id INTEGER
constraint monitor_checks_pk
primary key autoincrement,
type VARCHAR(50) not null,
value TEXT,
monitor_id INTEGER not null
);
create unique index monitor_checks_id_uindex
on monitor_checks (id);
-- Copy over the http status to the new monitor_checks table as a separate check
insert into monitor_checks(monitor_id, type, value)
select id, 'HTTP_STATUS_CODE_SHOULD_EQUAL', accepted_statuscodes_json
from monitor;
-- Copy over the keyword column from the monitor table to the new monitor_checks table as a separate check
insert into monitor_checks(monitor_id, type, value)
select id, 'RESPONSE_SHOULD_CONTAIN_TEXT', keyword
from monitor
WHERE monitor.type = 'keyword';
-- Delete the http status and keyword columns from the monitor table
create table monitor_dg_tmp
(
id INTEGER not null
primary key autoincrement,
name VARCHAR(150),
active BOOLEAN default 1 not null,
user_id INTEGER
references user
on update cascade on delete set null,
interval INTEGER default 20 not null,
url TEXT,
type VARCHAR(20),
weight INTEGER default 2000,
hostname VARCHAR(255),
port INTEGER,
created_date DATETIME default (DATETIME('now')) not null,
maxretries INTEGER default 0 not null,
ignore_tls BOOLEAN default 0 not null,
upside_down BOOLEAN default 0 not null,
maxredirects INTEGER default 10 not null,
dns_resolve_type VARCHAR(5),
dns_resolve_server VARCHAR(255),
dns_last_result VARCHAR(255),
retry_interval INTEGER default 0 not null
);
insert into monitor_dg_tmp(id, name, active, user_id, interval, url, type, weight, hostname, port, created_date, maxretries, ignore_tls, upside_down,
maxredirects, dns_resolve_type, dns_resolve_server, dns_last_result, retry_interval)
select id,
name,
active,
user_id,
interval,
url,
type,
weight,
hostname,
port,
created_date,
maxretries,
ignore_tls,
upside_down,
maxredirects,
dns_resolve_type,
dns_resolve_server,
dns_last_result,
retry_interval
from monitor;
drop table monitor;
alter table monitor_dg_tmp
rename to monitor;
create index user_id
on monitor (user_id);
UPDATE monitor SET type = 'http' WHERE type = 'keyword';
-- Add foreign key back to monitor_checks
DROP INDEX "monitor_checks_id_uindex";
ALTER TABLE "monitor_checks" RENAME TO "monitor_checks_dg_tmp";
CREATE TABLE "monitor_checks" (
"id" INTEGER PRIMARY KEY AUTOINCREMENT,
"type" VARCHAR(50) NOT NULL,
"value" TEXT,
"monitor_id" INTEGER NOT NULL,
CONSTRAINT "monitor_checks_monitor_id_fk"
FOREIGN KEY ("monitor_id")
REFERENCES "monitor" ("id")
ON DELETE CASCADE ON UPDATE CASCADE
);
INSERT INTO "monitor_checks" ("id", "type", "value", "monitor_id")
SELECT "id", "type", "value", "monitor_id" FROM "monitor_checks_dg_tmp";
CREATE UNIQUE INDEX "monitor_checks_id_uindex"
ON "monitor_checks" (
"id" ASC
);
COMMIT;