29 lines
871 B
SQL
29 lines
871 B
SQL
-- we don't need s3_segments multidimential array. we're moving it's functionality to a new table
|
|
ALTER TABLE IF EXISTS api.records
|
|
DROP COLUMN s3_segments;
|
|
|
|
|
|
|
|
-- segments table
|
|
CREATE TABLE api.segments (
|
|
id INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
|
|
s3_key TEXT NOT NULL,
|
|
s3_id TEXT NOT NULL,
|
|
bytes bigint DEFAULT 0
|
|
);
|
|
GRANT all ON api.segments TO automation;
|
|
GRANT SELECT ON api.segments TO web_anon;
|
|
|
|
|
|
-- records-segments join table
|
|
CREATE TABLE api.records_segments(
|
|
id INT GENERATED ALWAYS AS IDENTITY,
|
|
record_id INT NOT NULL,
|
|
segment_id INT NOT NULL,
|
|
CONSTRAINT fk_record FOREIGN KEY(record_id) REFERENCES api.records(id),
|
|
CONSTRAINT fk_segment FOREIGN KEY(segment_id) REFERENCES api.segments(id),
|
|
PRIMARY KEY(id, record_id, segment_id)
|
|
);
|
|
GRANT all ON api.records_segments TO automation;
|
|
GRANT SELECT ON api.records_segments TO web_anon;
|