From 033c0076548468fee5dcbc9633528ff57405f523 Mon Sep 17 00:00:00 2001 From: Steven Date: Fri, 10 Nov 2023 08:19:30 +0800 Subject: [PATCH] chore: add collection table definition --- store/collection.go | 1 + store/db/migration/dev/LATEST__SCHEMA.sql | 17 +++++++++++------ store/db/migration/prod/0.5/00__drop_idp.sql | 1 + store/db/migration/prod/0.5/00_idp.sql | 10 ---------- store/db/migration/prod/0.5/01__collection.sql | 13 +++++++++++++ store/db/migration/prod/LATEST__SCHEMA.sql | 17 +++++++++++------ 6 files changed, 37 insertions(+), 22 deletions(-) create mode 100644 store/collection.go create mode 100644 store/db/migration/prod/0.5/00__drop_idp.sql delete mode 100644 store/db/migration/prod/0.5/00_idp.sql create mode 100644 store/db/migration/prod/0.5/01__collection.sql diff --git a/store/collection.go b/store/collection.go new file mode 100644 index 0000000..72440ea --- /dev/null +++ b/store/collection.go @@ -0,0 +1 @@ +package store diff --git a/store/db/migration/dev/LATEST__SCHEMA.sql b/store/db/migration/dev/LATEST__SCHEMA.sql index 55145e3..bc53499 100644 --- a/store/db/migration/dev/LATEST__SCHEMA.sql +++ b/store/db/migration/dev/LATEST__SCHEMA.sql @@ -60,11 +60,16 @@ CREATE TABLE activity ( payload TEXT NOT NULL DEFAULT '{}' ); --- idp -CREATE TABLE idp ( +-- collection +CREATE TABLE collection ( id INTEGER PRIMARY KEY AUTOINCREMENT, - name TEXT NOT NULL, - type TEXT NOT NULL, - identifier_filter TEXT NOT NULL DEFAULT '', - config TEXT NOT NULL DEFAULT '{}' + creator_id INTEGER NOT NULL, + created_ts BIGINT NOT NULL DEFAULT (strftime('%s', 'now')), + name TEXT NOT NULL UNIQUE, + title TEXT NOT NULL DEFAULT '', + description TEXT NOT NULL DEFAULT '', + shortcut_ids INTEGER[] NOT NULL, + visibility TEXT NOT NULL CHECK (visibility IN ('PRIVATE', 'WORKSPACE', 'PUBLIC')) DEFAULT 'PRIVATE' ); + +CREATE INDEX idx_collection_name ON collection(name); diff --git a/store/db/migration/prod/0.5/00__drop_idp.sql b/store/db/migration/prod/0.5/00__drop_idp.sql new file mode 100644 index 0000000..ebd109f --- /dev/null +++ b/store/db/migration/prod/0.5/00__drop_idp.sql @@ -0,0 +1 @@ +DROP TABLE IF EXISTS idp; diff --git a/store/db/migration/prod/0.5/00_idp.sql b/store/db/migration/prod/0.5/00_idp.sql deleted file mode 100644 index 73db269..0000000 --- a/store/db/migration/prod/0.5/00_idp.sql +++ /dev/null @@ -1,10 +0,0 @@ -DROP TABLE IF EXISTS idp; - --- idp -CREATE TABLE idp ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - name TEXT NOT NULL, - type TEXT NOT NULL, - identifier_filter TEXT NOT NULL DEFAULT '', - config TEXT NOT NULL DEFAULT '{}' -); diff --git a/store/db/migration/prod/0.5/01__collection.sql b/store/db/migration/prod/0.5/01__collection.sql new file mode 100644 index 0000000..16008f4 --- /dev/null +++ b/store/db/migration/prod/0.5/01__collection.sql @@ -0,0 +1,13 @@ +-- collection +CREATE TABLE collection ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + creator_id INTEGER NOT NULL, + created_ts BIGINT NOT NULL DEFAULT (strftime('%s', 'now')), + name TEXT NOT NULL UNIQUE, + title TEXT NOT NULL DEFAULT '', + description TEXT NOT NULL DEFAULT '', + shortcut_ids INTEGER[] NOT NULL, + visibility TEXT NOT NULL CHECK (visibility IN ('PRIVATE', 'WORKSPACE', 'PUBLIC')) DEFAULT 'PRIVATE' +); + +CREATE INDEX idx_collection_name ON collection(name); diff --git a/store/db/migration/prod/LATEST__SCHEMA.sql b/store/db/migration/prod/LATEST__SCHEMA.sql index 55145e3..bc53499 100644 --- a/store/db/migration/prod/LATEST__SCHEMA.sql +++ b/store/db/migration/prod/LATEST__SCHEMA.sql @@ -60,11 +60,16 @@ CREATE TABLE activity ( payload TEXT NOT NULL DEFAULT '{}' ); --- idp -CREATE TABLE idp ( +-- collection +CREATE TABLE collection ( id INTEGER PRIMARY KEY AUTOINCREMENT, - name TEXT NOT NULL, - type TEXT NOT NULL, - identifier_filter TEXT NOT NULL DEFAULT '', - config TEXT NOT NULL DEFAULT '{}' + creator_id INTEGER NOT NULL, + created_ts BIGINT NOT NULL DEFAULT (strftime('%s', 'now')), + name TEXT NOT NULL UNIQUE, + title TEXT NOT NULL DEFAULT '', + description TEXT NOT NULL DEFAULT '', + shortcut_ids INTEGER[] NOT NULL, + visibility TEXT NOT NULL CHECK (visibility IN ('PRIVATE', 'WORKSPACE', 'PUBLIC')) DEFAULT 'PRIVATE' ); + +CREATE INDEX idx_collection_name ON collection(name);