aboutsummaryrefslogtreecommitdiff
path: root/db/migrations.go
blob: 38ea8aa03f713ba234efb1a9c563b52588a9f2cf (plain) (blame)
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
package db

type Migration struct {
	Version int64
	Up      []string
	Down    []string
}

var migrations []Migration = []Migration{
	{
		Version: 1,
		Up: []string{
			`CREATE TABLE users (
				id            BIGSERIAL PRIMARY KEY,
				email         text NOT NULL,
				password_hash text NOT NULL,
				otp_secret    text,
				is_otp_setup  boolean,
				status        smallint,
				UNIQUE(email)
			)`,
			`CREATE TABLE market_configs (
				id          BIGSERIAL PRIMARY KEY,
				market_name text NOT NULL,
				user_id     bigint NOT NULL REFERENCES users(id),
				config      jsonb,
				UNIQUE(user_id, market_name)
			)`,
			`CREATE TABLE reports (
				id               BIGSERIAL PRIMARY KEY,
				date             timestamp with time zone NOT NULL,
				market_config_id bigint NOT NULL,
				debug            boolean
			)`,
			"CREATE INDEX IF NOT EXISTS reports_market_config_id ON reports (market_config_id)",
			`CREATE TABLE report_lines (
				id        BIGSERIAL PRIMARY KEY,
				date      timestamp with time zone NOT NULL,
				report_id bigint NOT NULL REFERENCES reports(id),
				type      text,
				payload   jsonb
			)`,
			"CREATE INDEX IF NOT EXISTS report_lines_report_id ON report_lines (report_id)",
			"CREATE INDEX IF NOT EXISTS report_lines_type      ON report_lines (type)",
		},
		Down: []string{"DROP TABLE users", "DROP TABLE market_configs", "DROP TABLE report_lines", "DROP TABLE reports"},
	},
}