]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Front.git/blobdiff - db/migrations.go
Fix checkpoint not null in migration
[perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Front.git] / db / migrations.go
index ada02965b48d658a2aa99d85069aa0cf24b33231..f6ecb601bce9ee31c3b31bebd624647eb29ac884 100644 (file)
@@ -23,14 +23,14 @@ var migrations []Migration = []Migration{
                                id          BIGSERIAL PRIMARY KEY,
                                market_name text NOT NULL,
                                user_id     bigint NOT NULL REFERENCES users(id) ON DELETE CASCADE,
-                               config      jsonb,
-                               UNIQUE(user_id, market_name)
+                               config      jsonb
                        )`,
-                        `CREATE INDEX IF NOT EXISTS market_configs_user_id ON market_configs (user_id)`,
+                       `CREATE UNIQUE INDEX IF NOT EXISTS market_name_user_id_idx ON public.market_configs (user_id, market_name)`,
+                       `CREATE INDEX IF NOT EXISTS market_configs_user_id ON market_configs (user_id)`,
                        `CREATE TABLE reports (
                                id               BIGSERIAL PRIMARY KEY,
                                date             timestamp with time zone NOT NULL,
-                               market_config_id bigint NOT NULL,
+                               market_config_id bigint NOT NULL REFERENCES market_configs(id),
                                debug            boolean
                        )`,
                        "CREATE INDEX IF NOT EXISTS reports_market_config_id ON reports (market_config_id)",
@@ -52,29 +52,29 @@ var migrations []Migration = []Migration{
                                reports.date AS report_date,
                                report_lines.date,
                                report_lines.payload
-                             FROM (((public.report_lines
-                               JOIN public.reports ON ((reports.id = report_lines.report_id)))
-                               JOIN public.market_configs ON ((reports.market_config_id = market_configs.id)))
-                               JOIN public.users ON ((market_configs.user_id = users.id)))`,
+                             FROM public.report_lines
+                               JOIN public.reports ON reports.id = report_lines.report_id
+                               JOIN public.market_configs ON reports.market_config_id = market_configs.id
+                               JOIN public.users ON market_configs.user_id = users.id`,
                },
-               Down: []string{"DROP VIEW view_report_lines_by_user", "DROP TABLE users", "DROP TABLE market_configs", "DROP TABLE report_lines", "DROP TABLE reports"},
+               Down: []string{"DROP VIEW view_report_lines_by_user", "DROP TABLE report_lines", "DROP TABLE reports", "DROP TABLE market_configs", "DROP TABLE users"},
        },
        {
                Version: 201805061000,
                Up: []string{
                        `CREATE VIEW "view_balances" AS
-                           SELECT report_lines.id,
-                               reports.id AS report_id,
-                               market_configs.market_name,
-                                market_configs.id AS market_id,
-                               reports.date AS report_date,
-                               report_lines.date,
-                               report_lines.payload
-                             FROM (((report_lines
-                               JOIN reports ON ((reports.id = report_lines.report_id)))
-                               JOIN market_configs ON ((reports.market_config_id = market_configs.id)))
-                             WHERE report_lines.payload::jsonb->'checkpoint' IS NOT NULL`,
-                        `CREATE INDEX checkpoints_idx ON report_lines ((payload->>'checkpoint'))`,
+                                           SELECT report_lines.id,
+                                               reports.id AS report_id,
+                                               market_configs.market_name,
+                                               market_configs.id AS market_id,
+                                               reports.date AS report_date,
+                                               report_lines.date,
+                                               report_lines.payload
+                                             FROM report_lines
+                                               JOIN reports ON reports.id = report_lines.report_id
+                                               JOIN market_configs ON reports.market_config_id = market_configs.id
+                                             WHERE report_lines.payload::jsonb->>'checkpoint' IS NOT NULL`,
+                       `CREATE INDEX checkpoints_idx ON report_lines ((payload->>'checkpoint'))`,
                },
                Down: []string{"DROP VIEW view_balances", "DROP INDEX checkpoints_idx"},
        },