45 lines
1.4 KiB
SQL
45 lines
1.4 KiB
SQL
CREATE TABLE IF NOT EXISTS actors (
|
|
id SERIAL PRIMARY KEY,
|
|
document JSONB,
|
|
identifiedat TIMESTAMP with time zone DEFAULT now(),
|
|
instance VARCHAR(1000) NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS activities (
|
|
id SERIAL PRIMARY KEY,
|
|
document JSONB,
|
|
normalized TEXT,
|
|
identifiedat TIMESTAMP with time zone DEFAULT now(),
|
|
instance VARCHAR(1000) NOT NULL
|
|
);
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS instances (
|
|
endpoint VARCHAR(2083) NOT NULL PRIMARY KEY UNIQUE,
|
|
autostart BOOLEAN,
|
|
state VARCHAR(16),
|
|
username VARCHAR(32),
|
|
password VARCHAR(32),
|
|
software VARCHAR(50)
|
|
);
|
|
|
|
-- ALTER TABLE activities ADD COLUMN normalized_tsvector tsvector;
|
|
-- UPDATE activities SET normalized_tsvector = to_tsvector('english', normalized);
|
|
|
|
ALTER TABLE activities
|
|
ADD normalized_tsvector tsvector
|
|
GENERATED ALWAYS AS (to_tsvector('english', normalized)) STORED;
|
|
|
|
|
|
CREATE UNIQUE INDEX IF NOT EXISTS actors_uri_idx ON actors ( (document->>'id') );
|
|
CREATE UNIQUE INDEX IF NOT EXISTS activities_uri_idx ON activities ( (document->>'id') );
|
|
|
|
CREATE INDEX IF NOT EXISTS activities_published_idx ON activities ( (document->>'published') );
|
|
CREATE INDEX IF NOT EXISTS activities_identifiedat_idx ON activities (identifiedat);
|
|
|
|
CREATE INDEX IF NOT EXISTS normalized_idx ON activities USING gin(normalized_tsvector);
|
|
|
|
CREATE INDEX IF NOT EXISTS actors_id_idx ON actors (id);
|
|
CREATE INDEX IF NOT EXISTS activities_id_idx ON activities (id);
|
|
|