40 lines
1 KiB
SQL
40 lines
1 KiB
SQL
-- +goose Up
|
|
CREATE SCHEMA fileupload;
|
|
CREATE TYPE fileupload.FileStatusType AS ENUM (
|
|
'uploaded',
|
|
'parsed'
|
|
);
|
|
CREATE TYPE fileupload.CSVType AS ENUM (
|
|
'PoolList'
|
|
);
|
|
CREATE TABLE fileupload.file (
|
|
id SERIAL,
|
|
content_type TEXT NOT NULL,
|
|
created TIMESTAMP WITHOUT TIME ZONE NOT NULL,
|
|
creator_id INTEGER REFERENCES user_(id) NOT NULL,
|
|
deleted TIMESTAMP WITHOUT TIME ZONE,
|
|
name TEXT NOT NULL,
|
|
status fileupload.FileStatusType NOT NULL,
|
|
size_bytes INTEGER NOT NULL,
|
|
file_uuid uuid NOT NULL,
|
|
PRIMARY KEY(id)
|
|
);
|
|
CREATE TABLE fileupload.csv (
|
|
file_id INTEGER REFERENCES fileupload.file(id) NOT NULL,
|
|
type_ fileupload.CSVType NOT NULL,
|
|
PRIMARY KEY (file_id)
|
|
);
|
|
CREATE TABLE fileupload.error (
|
|
file_id INTEGER REFERENCES fileupload.file(id) NOT NULL,
|
|
id SERIAL,
|
|
line INTEGER NOT NULL,
|
|
message TEXT NOT NULL,
|
|
PRIMARY KEY (id)
|
|
);
|
|
-- +goose Down
|
|
DROP TABLE fileupload.error;
|
|
DROP TABLE fileupload.csv;
|
|
DROP TABLE fileupload.file;
|
|
DROP TYPE fileupload.CSVType;
|
|
DROP TYPE fileupload.FileStatusType;
|
|
DROP SCHEMA fileupload;
|