/
migrations.go
70 lines (59 loc) · 1.62 KB
/
migrations.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
package eventdb
import (
"github.com/BurntSushi/migration"
"github.com/cyclopcam/cyclops/pkg/dbh"
"github.com/cyclopcam/cyclops/pkg/log"
)
func Migrations(log log.Log) []migration.Migrator {
migs := []migration.Migrator{}
idx := 0
migs = append(migs, dbh.MakeMigrationFromSQL(log, &idx,
`
CREATE TABLE recording(
id INTEGER PRIMARY KEY,
random_id TEXT NOT NULL,
start_time INT NOT NULL,
record_type TEXT NOT NULL,
origin TEXT NOT NULL,
parent_id INT,
format_hd TEXT,
format_ld TEXT,
labels BLOB,
ontology_id INT,
bytes INT,
dimensions_hd TEXT,
dimensions_ld TEXT,
camera_id INT
);
CREATE TABLE ontology(
id INTEGER PRIMARY KEY,
created_at INT NOT NULL,
definition BLOB NOT NULL
);
`))
migs = append(migs, dbh.MakeMigrationFromSQL(log, &idx,
`
CREATE INDEX idx_recording_parent_id ON recording(parent_id);
CREATE INDEX idx_recording_camera_id ON recording(camera_id);
`))
migs = append(migs, dbh.MakeMigrationFromSQL(log, &idx,
`
CREATE INDEX idx_recording_start_time ON recording(start_time);
`))
migs = append(migs, dbh.MakeMigrationFromSQL(log, &idx,
`
ALTER TABLE ontology ADD COLUMN modified_at INT NOT NULL;
CREATE INDEX idx_ontology_modified_at ON ontology(modified_at);
`))
// Ontologies are immutable, so there is no point in having a modified_at field
migs = append(migs, dbh.MakeMigrationFromSQL(log, &idx,
`
DROP INDEX idx_ontology_modified_at;
ALTER TABLE ontology DROP COLUMN modified_at;
`))
migs = append(migs, dbh.MakeMigrationFromSQL(log, &idx,
`
ALTER TABLE recording ADD COLUMN use_for_training INT;
`))
return migs
}