Flatten migrations
This commit is contained in:
parent
5fd035561c
commit
692f7d69a3
4 changed files with 18 additions and 109 deletions
|
@ -115,6 +115,7 @@ type TalkgroupVersion struct {
|
|||
AlertConfig []byte `json:"alert_config"`
|
||||
Weight *float32 `json:"weight"`
|
||||
Learned *bool `json:"learned"`
|
||||
Ignored *bool `json:"ignored"`
|
||||
}
|
||||
|
||||
type User struct {
|
||||
|
|
|
@ -37,6 +37,7 @@ CREATE TABLE IF NOT EXISTS talkgroups(
|
|||
alert_config JSONB,
|
||||
weight REAL NOT NULL DEFAULT 1.0,
|
||||
learned BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
ignored BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
UNIQUE (system_id, tgid)
|
||||
);
|
||||
|
||||
|
@ -44,15 +45,25 @@ CREATE INDEX talkgroups_system_tgid_idx ON talkgroups (system_id, tgid);
|
|||
|
||||
CREATE INDEX IF NOT EXISTS talkgroup_id_tags ON talkgroups USING GIN (tags);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS talkgroups_learned(
|
||||
CREATE TABLE IF NOT EXISTS talkgroup_versions(
|
||||
-- version metadata
|
||||
id INTEGER PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
|
||||
system_id INTEGER REFERENCES systems(id) NOT NULL,
|
||||
tgid INTEGER NOT NULL,
|
||||
name TEXT NOT NULL,
|
||||
time TIMESTAMPTZ NOT NULL,
|
||||
created_by INTEGER REFERENCES users(id),
|
||||
-- talkgroup snapshot
|
||||
system_id INT4 REFERENCES systems(id),
|
||||
tgid INT4,
|
||||
name TEXT,
|
||||
alpha_tag TEXT,
|
||||
tg_group TEXT,
|
||||
ignored BOOLEAN,
|
||||
UNIQUE (system_id, tgid, name)
|
||||
frequency INTEGER,
|
||||
metadata JSONB,
|
||||
tags TEXT[],
|
||||
alert BOOLEAN,
|
||||
alert_config JSONB,
|
||||
weight REAL,
|
||||
learned BOOLEAN,
|
||||
ignored BOOLEAN
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS alerts(
|
||||
|
|
|
@ -1,30 +0,0 @@
|
|||
CREATE TABLE IF NOT EXISTS talkgroups_learned(
|
||||
id INTEGER PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
|
||||
system_id INTEGER REFERENCES systems(id) NOT NULL,
|
||||
tgid INTEGER NOT NULL,
|
||||
name TEXT NOT NULL,
|
||||
alpha_tag TEXT,
|
||||
tg_group TEXT,
|
||||
ignored BOOLEAN,
|
||||
UNIQUE (system_id, tgid, name)
|
||||
);
|
||||
|
||||
DROP TABLE IF EXISTS talkgroup_versions;
|
||||
|
||||
INSERT INTO talkgroups_learned(
|
||||
system_id,
|
||||
tgid,
|
||||
name,
|
||||
alpha_tag,
|
||||
tg_group,
|
||||
ignored
|
||||
) SELECT
|
||||
tg.system_id,
|
||||
tg.tgid,
|
||||
tg.name,
|
||||
tg.alpha_tag,
|
||||
tg.tg_group
|
||||
tg.ignored
|
||||
FROM talkgroups tg;
|
||||
|
||||
ALTER TABLE talkgroups DROP COLUMN ignored;
|
|
@ -1,73 +0,0 @@
|
|||
ALTER TABLE talkgroups ADD COLUMN ignored BOOLEAN NOT NULL DEFAULT FALSE;
|
||||
|
||||
INSERT INTO talkgroups(
|
||||
system_id,
|
||||
tgid,
|
||||
name,
|
||||
alpha_tag,
|
||||
tg_group,
|
||||
alert,
|
||||
ignored,
|
||||
learned
|
||||
) SELECT
|
||||
tgl.system_id,
|
||||
tgl.tgid,
|
||||
tgl.name,
|
||||
tgl.alpha_tag,
|
||||
tgl.tg_group,
|
||||
TRUE,
|
||||
tgl.ignored,
|
||||
TRUE
|
||||
FROM talkgroups_learned tgl ON CONFLICT DO NOTHING;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS talkgroup_versions(
|
||||
-- version metadata
|
||||
id INTEGER PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
|
||||
time TIMESTAMPTZ NOT NULL,
|
||||
created_by INTEGER REFERENCES users(id),
|
||||
-- talkgroup snapshot
|
||||
system_id INT4 REFERENCES systems(id),
|
||||
tgid INT4,
|
||||
name TEXT,
|
||||
alpha_tag TEXT,
|
||||
tg_group TEXT,
|
||||
frequency INTEGER,
|
||||
metadata JSONB,
|
||||
tags TEXT[],
|
||||
alert BOOLEAN,
|
||||
alert_config JSONB,
|
||||
weight REAL,
|
||||
learned BOOLEAN,
|
||||
ignored BOOLEAN
|
||||
);
|
||||
|
||||
-- Store current version
|
||||
INSERT INTO talkgroup_versions(time,
|
||||
system_id,
|
||||
tgid,
|
||||
name,
|
||||
alpha_tag,
|
||||
tg_group,
|
||||
frequency,
|
||||
metadata,
|
||||
tags,
|
||||
alert,
|
||||
alert_config,
|
||||
weight,
|
||||
learned
|
||||
) SELECT NOW(),
|
||||
tg.system_id,
|
||||
tg.tgid,
|
||||
tg.name,
|
||||
tg.alpha_tag,
|
||||
tg.tg_group,
|
||||
tg.frequency,
|
||||
tg.metadata,
|
||||
tg.tags,
|
||||
tg.alert,
|
||||
tg.alert_config,
|
||||
tg.weight,
|
||||
tg.learned
|
||||
FROM talkgroups tg;
|
||||
|
||||
DROP TABLE IF EXISTS talkgroups_learned;
|
Loading…
Reference in a new issue