Move database logic into separate subdirectory
I'm trying to see if this speeds up builds a bit. May not without a module boundary, but for now it's nice organization to have as the program grows.
This commit is contained in:
parent
338f90708e
commit
41587c3694
333 changed files with 206 additions and 200 deletions
39
db/migrations/00001_initial.sql
Normal file
39
db/migrations/00001_initial.sql
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
-- +goose Up
|
||||
CREATE TYPE ArcgisLicenseType AS ENUM (
|
||||
'advancedUT',
|
||||
'basicUT',
|
||||
'creatorUT',
|
||||
'editorUT',
|
||||
'fieldWorkerUT',
|
||||
'GISProfessionalAdvUT',
|
||||
'GISProfessionalBasicUT',
|
||||
'GISProfessionalStdUT',
|
||||
'IndoorsUserUT',
|
||||
'insightsAnalystUT',
|
||||
'liteUT',
|
||||
'standardUT',
|
||||
'storytellerUT',
|
||||
'viewerUT');
|
||||
|
||||
CREATE TABLE organization (
|
||||
id SERIAL PRIMARY KEY,
|
||||
name TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE user_ (
|
||||
id SERIAL PRIMARY KEY,
|
||||
arcgis_access_token TEXT,
|
||||
arcgis_license ArcgisLicenseType,
|
||||
arcgis_refresh_token TEXT,
|
||||
arcgis_refresh_token_expires TIMESTAMP,
|
||||
arcgis_role TEXT,
|
||||
display_name VARCHAR(200) NOT NULL,
|
||||
email TEXT,
|
||||
organization_id INTEGER REFERENCES organization (id),
|
||||
username TEXT NOT NULL
|
||||
);
|
||||
|
||||
-- +goose Down
|
||||
DROP TABLE user_;
|
||||
DROP TABLE organization;
|
||||
DROP TYPE arcgis_license_type;
|
||||
10
db/migrations/00002_password.sql
Normal file
10
db/migrations/00002_password.sql
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
-- +goose Up
|
||||
CREATE TYPE HashType AS ENUM (
|
||||
'bcrypt-14');
|
||||
|
||||
ALTER TABLE user_ ADD COLUMN password_hash_type HashType NOT NULL;
|
||||
ALTER TABLE user_ ADD COLUMN password_hash TEXT NOT NULL;
|
||||
-- +goose Down
|
||||
ALTER TABLE user_ DROP COLUMN password_hash;
|
||||
ALTER TABLE user_ DROP COLUMN password_hash_type;
|
||||
DROP TYPE HashType;
|
||||
12
db/migrations/00003_add_session.sql
Normal file
12
db/migrations/00003_add_session.sql
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
-- +goose Up
|
||||
CREATE TABLE sessions (
|
||||
token TEXT PRIMARY KEY,
|
||||
data BYTEA NOT NULL,
|
||||
expiry TIMESTAMPTZ NOT NULL
|
||||
);
|
||||
|
||||
CREATE INDEX sessions_expiry_idx ON sessions (expiry);
|
||||
|
||||
|
||||
-- +goose Down
|
||||
DROP TABLE sessions;
|
||||
12
db/migrations/00004_add_oauth_token.sql
Normal file
12
db/migrations/00004_add_oauth_token.sql
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
-- +goose Up
|
||||
CREATE TABLE oauth_token (
|
||||
id SERIAL PRIMARY KEY,
|
||||
access_token TEXT NOT NULL,
|
||||
expires TIMESTAMP NOT NULL,
|
||||
refresh_token TEXT NOT NULL,
|
||||
username TEXT NOT NULL,
|
||||
user_id INTEGER REFERENCES user_ (id) NOT NULL
|
||||
);
|
||||
|
||||
-- +goose Down
|
||||
DROP TABLE oauth_token;
|
||||
10
db/migrations/00005_add_arcgis_org.sql
Normal file
10
db/migrations/00005_add_arcgis_org.sql
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
-- +goose Up
|
||||
ALTER TABLE organization ADD COLUMN arcgis_id TEXT;
|
||||
ALTER TABLE organization ADD COLUMN arcgis_name TEXT;
|
||||
ALTER TABLE oauth_token ADD COLUMN arcgis_id TEXT;
|
||||
ALTER TABLE oauth_token ADD COLUMN arcgis_license_type_id TEXT;
|
||||
-- +goose Down
|
||||
ALTER TABLE organization DROP COLUMN arcgis_id;
|
||||
ALTER TABLE organization DROP COLUMN arcgis_name;
|
||||
ALTER TABLE oauth_token DROP COLUMN arcgis_id;
|
||||
ALTER TABLE oauth_token DROP COLUMN arcgis_license_type_id;
|
||||
7
db/migrations/00006_add_oauth_refresh_expires.sql
Normal file
7
db/migrations/00006_add_oauth_refresh_expires.sql
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
-- +goose Up
|
||||
ALTER TABLE oauth_token RENAME COLUMN expires TO access_token_expires;
|
||||
ALTER TABLE oauth_token ADD COLUMN refresh_token_expires TIMESTAMP NOT NULL DEFAULT current_timestamp;
|
||||
|
||||
-- +goose Down
|
||||
ALTER TABLE oauth_token DROP COLUMN refresh_token_expires;
|
||||
ALTER TABLE oauth_token RENAME COLUMN access_token_expires TO expires;
|
||||
2220
db/migrations/00007_add_fieldseeker.sql
Normal file
2220
db/migrations/00007_add_fieldseeker.sql
Normal file
File diff suppressed because it is too large
Load diff
12
db/migrations/00008_add_sync.sql
Normal file
12
db/migrations/00008_add_sync.sql
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
-- +goose Up
|
||||
CREATE TABLE fieldseeker_sync (
|
||||
id SERIAL PRIMARY KEY,
|
||||
created TIMESTAMP WITHOUT TIME ZONE DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||||
records_created INTEGER NOT NULL,
|
||||
records_updated INTEGER NOT NULL,
|
||||
records_unchanged INTEGER NOT NULL,
|
||||
organization_id INTEGER REFERENCES organization(id) NOT NULL
|
||||
);
|
||||
|
||||
-- +goose Down
|
||||
DROP TABLE fieldseeker_sync;
|
||||
5
db/migrations/00009_add_oauth_invalidated.sql
Normal file
5
db/migrations/00009_add_oauth_invalidated.sql
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
-- +goose Up
|
||||
ALTER TABLE oauth_token ADD COLUMN invalidated_at timestamp without time zone;
|
||||
|
||||
-- +goose Down
|
||||
ALTER TABLE oauth_token DROP COLUMN invalidated_at;
|
||||
17
db/migrations/00010_add_notification.sql
Normal file
17
db/migrations/00010_add_notification.sql
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
-- +goose Up
|
||||
CREATE TYPE NotificationType AS ENUM (
|
||||
'oauth_token_invalidated');
|
||||
|
||||
CREATE TABLE notification (
|
||||
id SERIAL PRIMARY KEY,
|
||||
created TIMESTAMP WITHOUT TIME ZONE NOT NULL,
|
||||
link TEXT NOT NULL,
|
||||
message TEXT NOT NULL,
|
||||
type NotificationType NOT NULL,
|
||||
user_id INTEGER REFERENCES user_(id) NOT NULL);
|
||||
|
||||
|
||||
|
||||
-- +goose Down
|
||||
DROP TABLE notification;
|
||||
DROP TYPE NotificationType;
|
||||
9
db/migrations/00011_fix_fieldseeker.sql
Normal file
9
db/migrations/00011_fix_fieldseeker.sql
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
-- +goose Up
|
||||
ALTER TABLE history_treatment ADD COLUMN created TIMESTAMP;
|
||||
ALTER TABLE history_proposedtreatmentarea ADD COLUMN created TIMESTAMP;
|
||||
ALTER TABLE history_polygonlocation ADD COLUMN created TIMESTAMP;
|
||||
|
||||
-- +goose Down
|
||||
ALTER TABLE history_treatment DROP COLUMN created;
|
||||
ALTER TABLE history_proposedtreatmentarea DROP COLUMN created;
|
||||
ALTER TABLE history_polygonlocation DROP COLUMN created;
|
||||
9
db/migrations/00012_notification_unique_link.sql
Normal file
9
db/migrations/00012_notification_unique_link.sql
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
-- +goose Up
|
||||
ALTER TABLE notification ADD COLUMN resolved_at TIMESTAMP WITHOUT TIME ZONE;
|
||||
CREATE UNIQUE INDEX unique_user_link_not_resolved
|
||||
ON notification (user_id, link)
|
||||
WHERE resolved_at IS NULL;
|
||||
|
||||
-- +goose Down
|
||||
DROP INDEX unique_user_link_not_resolved;
|
||||
ALTER TABLE notification DROP COLUMN resolved_at;
|
||||
73
db/migrations/00013_fs_globalid_not_null.sql
Normal file
73
db/migrations/00013_fs_globalid_not_null.sql
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
-- +goose Up
|
||||
ALTER TABLE fs_containerrelate ALTER COLUMN globalid SET NOT NULL;
|
||||
ALTER TABLE fs_fieldscoutinglog ALTER COLUMN globalid SET NOT NULL;
|
||||
ALTER TABLE fs_habitatrelate ALTER COLUMN globalid SET NOT NULL;
|
||||
ALTER TABLE fs_habitatrelate ALTER COLUMN globalid SET NOT NULL;
|
||||
ALTER TABLE fs_inspectionsample ALTER COLUMN globalid SET NOT NULL;
|
||||
ALTER TABLE fs_inspectionsample ALTER COLUMN globalid SET NOT NULL;
|
||||
ALTER TABLE fs_inspectionsampledetail ALTER COLUMN globalid SET NOT NULL;
|
||||
ALTER TABLE fs_linelocation ALTER COLUMN globalid SET NOT NULL;
|
||||
ALTER TABLE fs_locationtracking ALTER COLUMN globalid SET NOT NULL;
|
||||
ALTER TABLE fs_mosquitoinspection ALTER COLUMN globalid SET NOT NULL;
|
||||
ALTER TABLE fs_mosquitoinspection ALTER COLUMN globalid SET NOT NULL;
|
||||
ALTER TABLE fs_pointlocation ALTER COLUMN globalid SET NOT NULL;
|
||||
ALTER TABLE fs_pointlocation ALTER COLUMN geometry_x SET NOT NULL;
|
||||
ALTER TABLE fs_pointlocation ALTER COLUMN geometry_y SET NOT NULL;
|
||||
ALTER TABLE fs_polygonlocation ALTER COLUMN globalid SET NOT NULL;
|
||||
ALTER TABLE fs_polygonlocation ALTER COLUMN globalid SET NOT NULL;
|
||||
ALTER TABLE fs_pool ALTER COLUMN globalid SET NOT NULL;
|
||||
ALTER TABLE fs_pooldetail ALTER COLUMN globalid SET NOT NULL;
|
||||
ALTER TABLE fs_proposedtreatmentarea ALTER COLUMN globalid SET NOT NULL;
|
||||
ALTER TABLE fs_qamosquitoinspection ALTER COLUMN globalid SET NOT NULL;
|
||||
ALTER TABLE fs_rodentlocation ALTER COLUMN globalid SET NOT NULL;
|
||||
ALTER TABLE fs_samplecollection ALTER COLUMN globalid SET NOT NULL;
|
||||
ALTER TABLE fs_samplelocation ALTER COLUMN globalid SET NOT NULL;
|
||||
ALTER TABLE fs_servicerequest ALTER COLUMN globalid SET NOT NULL;
|
||||
ALTER TABLE fs_servicerequest ALTER COLUMN geometry_x SET NOT NULL;
|
||||
ALTER TABLE fs_servicerequest ALTER COLUMN geometry_y SET NOT NULL;
|
||||
ALTER TABLE fs_speciesabundance ALTER COLUMN globalid SET NOT NULL;
|
||||
ALTER TABLE fs_stormdrain ALTER COLUMN globalid SET NOT NULL;
|
||||
ALTER TABLE fs_timecard ALTER COLUMN globalid SET NOT NULL;
|
||||
ALTER TABLE fs_trapdata ALTER COLUMN globalid SET NOT NULL;
|
||||
ALTER TABLE fs_traplocation ALTER COLUMN globalid SET NOT NULL;
|
||||
ALTER TABLE fs_treatment ALTER COLUMN globalid SET NOT NULL;
|
||||
ALTER TABLE fs_treatmentarea ALTER COLUMN globalid SET NOT NULL;
|
||||
ALTER TABLE fs_zones ALTER COLUMN globalid SET NOT NULL;
|
||||
ALTER TABLE fs_zones2 ALTER COLUMN globalid SET NOT NULL;
|
||||
|
||||
-- +goose Down
|
||||
ALTER TABLE fs_containerrelate ALTER COLUMN globalid DROP NOT NULL;
|
||||
ALTER TABLE fs_fieldscoutinglog ALTER COLUMN globalid DROP NOT NULL;
|
||||
ALTER TABLE fs_habitatrelate ALTER COLUMN globalid DROP NOT NULL;
|
||||
ALTER TABLE fs_habitatrelate ALTER COLUMN globalid DROP NOT NULL;
|
||||
ALTER TABLE fs_inspectionsample ALTER COLUMN globalid DROP NOT NULL;
|
||||
ALTER TABLE fs_inspectionsample ALTER COLUMN globalid DROP NOT NULL;
|
||||
ALTER TABLE fs_inspectionsampledetail ALTER COLUMN globalid DROP NOT NULL;
|
||||
ALTER TABLE fs_linelocation ALTER COLUMN globalid DROP NOT NULL;
|
||||
ALTER TABLE fs_locationtracking ALTER COLUMN globalid DROP NOT NULL;
|
||||
ALTER TABLE fs_mosquitoinspection ALTER COLUMN globalid DROP NOT NULL;
|
||||
ALTER TABLE fs_mosquitoinspection ALTER COLUMN globalid DROP NOT NULL;
|
||||
ALTER TABLE fs_pointlocation ALTER COLUMN geometry_y DROP NOT NULL;
|
||||
ALTER TABLE fs_pointlocation ALTER COLUMN geometry_x DROP NOT NULL;
|
||||
ALTER TABLE fs_pointlocation ALTER COLUMN globalid DROP NOT NULL;
|
||||
ALTER TABLE fs_polygonlocation ALTER COLUMN globalid DROP NOT NULL;
|
||||
ALTER TABLE fs_polygonlocation ALTER COLUMN globalid DROP NOT NULL;
|
||||
ALTER TABLE fs_pool ALTER COLUMN globalid DROP NOT NULL;
|
||||
ALTER TABLE fs_pooldetail ALTER COLUMN globalid DROP NOT NULL;
|
||||
ALTER TABLE fs_proposedtreatmentarea ALTER COLUMN globalid DROP NOT NULL;
|
||||
ALTER TABLE fs_qamosquitoinspection ALTER COLUMN globalid DROP NOT NULL;
|
||||
ALTER TABLE fs_rodentlocation ALTER COLUMN globalid DROP NOT NULL;
|
||||
ALTER TABLE fs_samplecollection ALTER COLUMN globalid DROP NOT NULL;
|
||||
ALTER TABLE fs_samplelocation ALTER COLUMN globalid DROP NOT NULL;
|
||||
ALTER TABLE fs_servicerequest ALTER COLUMN geometry_y DROP NOT NULL;
|
||||
ALTER TABLE fs_servicerequest ALTER COLUMN geometry_x DROP NOT NULL;
|
||||
ALTER TABLE fs_servicerequest ALTER COLUMN globalid DROP NOT NULL;
|
||||
ALTER TABLE fs_speciesabundance ALTER COLUMN globalid DROP NOT NULL;
|
||||
ALTER TABLE fs_stormdrain ALTER COLUMN globalid DROP NOT NULL;
|
||||
ALTER TABLE fs_timecard ALTER COLUMN globalid DROP NOT NULL;
|
||||
ALTER TABLE fs_trapdata ALTER COLUMN globalid DROP NOT NULL;
|
||||
ALTER TABLE fs_traplocation ALTER COLUMN globalid DROP NOT NULL;
|
||||
ALTER TABLE fs_treatment ALTER COLUMN globalid DROP NOT NULL;
|
||||
ALTER TABLE fs_treatmentarea ALTER COLUMN globalid DROP NOT NULL;
|
||||
ALTER TABLE fs_zones ALTER COLUMN globalid DROP NOT NULL;
|
||||
ALTER TABLE fs_zones2 ALTER COLUMN globalid DROP NOT NULL;
|
||||
21
db/migrations/00014_h3_aggregation.sql
Normal file
21
db/migrations/00014_h3_aggregation.sql
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
-- +goose Up
|
||||
-- CREATE EXTENSION h3;
|
||||
-- CREATE EXTENSION h3_postgis CASCADE;
|
||||
CREATE TYPE H3AggregationType AS ENUM (
|
||||
'MosquitoSource',
|
||||
'ServiceRequest');
|
||||
|
||||
CREATE TABLE h3_aggregation (
|
||||
id SERIAL PRIMARY KEY,
|
||||
cell h3index NOT NULL,
|
||||
count_ INTEGER NOT NULL,
|
||||
geometry public.geometry(Polygon,4326),
|
||||
organization_id INTEGER REFERENCES organization (id) NOT NULL,
|
||||
resolution INT NOT NULL,
|
||||
type_ H3AggregationType NOT NULL,
|
||||
UNIQUE(cell, organization_id, type_));
|
||||
|
||||
-- +goose Down
|
||||
DROP TABLE h3_aggregation;
|
||||
DROP TYPE H3AggregationType;
|
||||
-- DROP EXTENSION h3;
|
||||
31
db/migrations/00015_fs_geometry.sql
Normal file
31
db/migrations/00015_fs_geometry.sql
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
-- +goose Up
|
||||
ALTER TABLE fs_mosquitoinspection ADD COLUMN geom geometry(Point, 3857); -- as specified by the ArcGIS API
|
||||
UPDATE fs_mosquitoinspection SET geom = ST_SetSRID(ST_MakePoint(geometry_x, geometry_y), 3857);
|
||||
CREATE INDEX idx_fs_mosquitoinspection_geom ON fs_mosquitoinspection USING GIST(geom);
|
||||
|
||||
ALTER TABLE fs_pointlocation ADD COLUMN geom geometry(Point, 3857); -- as specified by the ArcGIS API
|
||||
UPDATE fs_pointlocation SET geom = ST_SetSRID(ST_MakePoint(geometry_x, geometry_y), 3857);
|
||||
CREATE INDEX idx_fs_pointlocation_geom ON fs_pointlocation USING GIST(geom);
|
||||
|
||||
|
||||
--ALTER TABLE fs_trapdata ADD COLUMN geom geometry(Point, 3857); -- as specified by the ArcGIS API
|
||||
--UPDATE fs_trapdata SET geom = ST_SetSRID(ST_MakePoint(geometry_x, geometry_y), 3857);
|
||||
|
||||
ALTER TABLE fs_traplocation ADD COLUMN geom geometry(Point, 3857); -- as specified by the ArcGIS API
|
||||
UPDATE fs_traplocation SET geom = ST_SetSRID(ST_MakePoint(geometry_x, geometry_y), 3857);
|
||||
CREATE INDEX idx_fs_traplocation_geom ON fs_traplocation USING GIST(geom);
|
||||
|
||||
ALTER TABLE fs_treatment ADD COLUMN geom geometry(Point, 3857); -- as specified by the ArcGIS API
|
||||
UPDATE fs_treatment SET geom = ST_SetSRID(ST_MakePoint(geometry_x, geometry_y), 3857);
|
||||
CREATE INDEX idx_fs_treatment_geom ON fs_treatment USING GIST(geom);
|
||||
|
||||
-- +goose Down
|
||||
DROP INDEX idx_fs_mosquitoinspection_geom;
|
||||
ALTER TABLE fs_mosquitoinspection DROP COLUMN geom;
|
||||
DROP INDEX idx_fs_pointlocation_geom;
|
||||
ALTER TABLE fs_pointlocation DROP COLUMN geom;
|
||||
--ALTER TABLE fs_trapdata DROP COLUMN geom;
|
||||
DROP INDEX idx_fs_traplocation_geom;
|
||||
ALTER TABLE fs_traplocation DROP COLUMN geom;
|
||||
DROP INDEX idx_fs_treatment_geom;
|
||||
ALTER TABLE fs_treatment DROP COLUMN geom;
|
||||
Loading…
Add table
Add a link
Reference in a new issue