mirror of
https://github.com/AppFlowy-IO/AppFlowy-Cloud.git
synced 2025-04-19 03:24:42 -04:00
30 lines
1.1 KiB
PL/PgSQL
30 lines
1.1 KiB
PL/PgSQL
-- stores the published view of a workspace by a user of workspace
|
|
CREATE TABLE IF NOT EXISTS af_published_collab (
|
|
doc_name TEXT NOT NULL,
|
|
published_by BIGINT NOT NULL REFERENCES af_user(uid) ON DELETE CASCADE,
|
|
workspace_id UUID NOT NULL REFERENCES af_workspace(workspace_id) ON DELETE CASCADE,
|
|
metadata JSONB NOT NULL,
|
|
blob BYTEA NOT NULL DEFAULT '',
|
|
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
PRIMARY KEY (workspace_id, doc_name)
|
|
);
|
|
|
|
-- trigger to update updated_at column
|
|
CREATE OR REPLACE FUNCTION update_updated_at()
|
|
RETURNS TRIGGER AS $$
|
|
BEGIN
|
|
NEW.updated_at = CURRENT_TIMESTAMP;
|
|
RETURN NEW;
|
|
END;
|
|
$$ LANGUAGE plpgsql;
|
|
|
|
CREATE TRIGGER af_published_collab_update_updated_at
|
|
BEFORE UPDATE ON af_published_collab
|
|
FOR EACH ROW
|
|
EXECUTE FUNCTION update_updated_at();
|
|
|
|
-- every workspace have a prefix for published view
|
|
ALTER TABLE af_workspace ADD COLUMN publish_namespace TEXT UNIQUE;
|
|
CREATE INDEX IF NOT EXISTS publish_namespace_idx ON af_workspace(publish_namespace);
|