From abda6ad04101e6d342546ed4a95d60e17b09efef Mon Sep 17 00:00:00 2001 From: Steven Date: Sat, 9 Dec 2023 12:05:45 +0800 Subject: [PATCH] chore: update latest schema --- .../db/mysql/migration/dev/LATEST__SCHEMA.sql | 35 +++---- .../mysql/migration/prod/0.18/01__webhook.sql | 10 ++ .../migration/prod/0.18/02__user_setting.sql | 4 + .../mysql/migration/prod/LATEST__SCHEMA.sql | 32 +++--- .../postgres/migration/dev/LATEST__SCHEMA.sql | 98 ++++++++----------- .../migration/prod/LATEST__SCHEMA.sql | 98 ++++++++----------- 6 files changed, 130 insertions(+), 147 deletions(-) create mode 100644 store/db/mysql/migration/prod/0.18/01__webhook.sql create mode 100644 store/db/mysql/migration/prod/0.18/02__user_setting.sql diff --git a/store/db/mysql/migration/dev/LATEST__SCHEMA.sql b/store/db/mysql/migration/dev/LATEST__SCHEMA.sql index c03b2eb3..9a29e8a5 100644 --- a/store/db/mysql/migration/dev/LATEST__SCHEMA.sql +++ b/store/db/mysql/migration/dev/LATEST__SCHEMA.sql @@ -12,16 +12,17 @@ DROP TABLE IF EXISTS `activity`; DROP TABLE IF EXISTS `storage`; DROP TABLE IF EXISTS `idp`; DROP TABLE IF EXISTS `inbox`; +DROP TABLE IF EXISTS `webhook`; -- migration_history CREATE TABLE `migration_history` ( - `version` VARCHAR(255) NOT NULL PRIMARY KEY, + `version` VARCHAR(256) NOT NULL PRIMARY KEY, `created_ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ); -- system_setting CREATE TABLE `system_setting` ( - `name` VARCHAR(255) NOT NULL PRIMARY KEY, + `name` VARCHAR(256) NOT NULL PRIMARY KEY, `value` LONGTEXT NOT NULL, `description` TEXT NOT NULL ); @@ -31,19 +32,19 @@ CREATE TABLE `user` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `created_ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, - `row_status` VARCHAR(255) NOT NULL DEFAULT 'NORMAL', - `username` VARCHAR(255) NOT NULL UNIQUE, - `role` VARCHAR(255) NOT NULL DEFAULT 'USER', - `email` VARCHAR(255) NOT NULL DEFAULT '', - `nickname` VARCHAR(255) NOT NULL DEFAULT '', - `password_hash` VARCHAR(255) NOT NULL, + `row_status` VARCHAR(256) NOT NULL DEFAULT 'NORMAL', + `username` VARCHAR(256) NOT NULL UNIQUE, + `role` VARCHAR(256) NOT NULL DEFAULT 'USER', + `email` VARCHAR(256) NOT NULL DEFAULT '', + `nickname` VARCHAR(256) NOT NULL DEFAULT '', + `password_hash` VARCHAR(256) NOT NULL, `avatar_url` LONGTEXT NOT NULL ); -- user_setting CREATE TABLE `user_setting` ( `user_id` INT NOT NULL, - `key` VARCHAR(255) NOT NULL, + `key` VARCHAR(256) NOT NULL, `value` LONGTEXT NOT NULL, UNIQUE(`user_id`,`key`) ); @@ -54,9 +55,9 @@ CREATE TABLE `memo` ( `creator_id` INT NOT NULL, `created_ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, - `row_status` VARCHAR(255) NOT NULL DEFAULT 'NORMAL', + `row_status` VARCHAR(256) NOT NULL DEFAULT 'NORMAL', `content` TEXT NOT NULL, - `visibility` VARCHAR(255) NOT NULL DEFAULT 'PRIVATE' + `visibility` VARCHAR(256) NOT NULL DEFAULT 'PRIVATE' ); -- memo_organizer @@ -84,15 +85,15 @@ CREATE TABLE `resource` ( `filename` TEXT NOT NULL, `blob` MEDIUMBLOB, `external_link` TEXT NOT NULL, - `type` VARCHAR(255) NOT NULL DEFAULT '', + `type` VARCHAR(256) NOT NULL DEFAULT '', `size` INT NOT NULL DEFAULT '0', - `internal_path` VARCHAR(255) NOT NULL DEFAULT '', + `internal_path` VARCHAR(256) NOT NULL DEFAULT '', `memo_id` INT DEFAULT NULL ); -- tag CREATE TABLE `tag` ( - `name` VARCHAR(255) NOT NULL, + `name` VARCHAR(256) NOT NULL, `creator_id` INT NOT NULL, UNIQUE(`name`,`creator_id`) ); @@ -102,8 +103,8 @@ CREATE TABLE `activity` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `creator_id` INT NOT NULL, `created_ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, - `type` VARCHAR(255) NOT NULL DEFAULT '', - `level` VARCHAR(255) NOT NULL DEFAULT 'INFO', + `type` VARCHAR(256) NOT NULL DEFAULT '', + `level` VARCHAR(256) NOT NULL DEFAULT 'INFO', `payload` TEXT NOT NULL ); @@ -139,7 +140,7 @@ CREATE TABLE `webhook` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `created_ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, - `row_status` VARCHAR(255) NOT NULL DEFAULT 'NORMAL', + `row_status` VARCHAR(256) NOT NULL DEFAULT 'NORMAL', `creator_id` INT NOT NULL, `name` TEXT NOT NULL, `url` TEXT NOT NULL diff --git a/store/db/mysql/migration/prod/0.18/01__webhook.sql b/store/db/mysql/migration/prod/0.18/01__webhook.sql new file mode 100644 index 00000000..937f333e --- /dev/null +++ b/store/db/mysql/migration/prod/0.18/01__webhook.sql @@ -0,0 +1,10 @@ +-- webhook +CREATE TABLE `webhook` ( + `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + `created_ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + `row_status` VARCHAR(256) NOT NULL DEFAULT 'NORMAL', + `creator_id` INT NOT NULL, + `name` TEXT NOT NULL, + `url` TEXT NOT NULL +); diff --git a/store/db/mysql/migration/prod/0.18/02__user_setting.sql b/store/db/mysql/migration/prod/0.18/02__user_setting.sql new file mode 100644 index 00000000..09018d65 --- /dev/null +++ b/store/db/mysql/migration/prod/0.18/02__user_setting.sql @@ -0,0 +1,4 @@ +UPDATE `user_setting` SET `key` = 'USER_SETTING_LOCALE' WHERE `key` = 'locale'; +UPDATE `user_setting` SET `key` = 'USER_SETTING_APPEARANCE' WHERE `key` = 'appearance'; +UPDATE `user_setting` SET `key` = 'USER_SETTING_MEMO_VISIBILITY' WHERE `key` = 'memo-visibility'; +UPDATE `user_setting` SET `key` = 'USER_SETTING_TELEGRAM_USER_ID' WHERE `key` = 'telegram-user-id'; diff --git a/store/db/mysql/migration/prod/LATEST__SCHEMA.sql b/store/db/mysql/migration/prod/LATEST__SCHEMA.sql index 005595bc..ee205c74 100644 --- a/store/db/mysql/migration/prod/LATEST__SCHEMA.sql +++ b/store/db/mysql/migration/prod/LATEST__SCHEMA.sql @@ -15,13 +15,13 @@ DROP TABLE IF EXISTS `inbox`; -- migration_history CREATE TABLE `migration_history` ( - `version` VARCHAR(255) NOT NULL PRIMARY KEY, + `version` VARCHAR(256) NOT NULL PRIMARY KEY, `created_ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ); -- system_setting CREATE TABLE `system_setting` ( - `name` VARCHAR(255) NOT NULL PRIMARY KEY, + `name` VARCHAR(256) NOT NULL PRIMARY KEY, `value` LONGTEXT NOT NULL, `description` TEXT NOT NULL ); @@ -31,19 +31,19 @@ CREATE TABLE `user` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `created_ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, - `row_status` VARCHAR(255) NOT NULL DEFAULT 'NORMAL', - `username` VARCHAR(255) NOT NULL UNIQUE, - `role` VARCHAR(255) NOT NULL DEFAULT 'USER', - `email` VARCHAR(255) NOT NULL DEFAULT '', - `nickname` VARCHAR(255) NOT NULL DEFAULT '', - `password_hash` VARCHAR(255) NOT NULL, + `row_status` VARCHAR(256) NOT NULL DEFAULT 'NORMAL', + `username` VARCHAR(256) NOT NULL UNIQUE, + `role` VARCHAR(256) NOT NULL DEFAULT 'USER', + `email` VARCHAR(256) NOT NULL DEFAULT '', + `nickname` VARCHAR(256) NOT NULL DEFAULT '', + `password_hash` VARCHAR(256) NOT NULL, `avatar_url` LONGTEXT NOT NULL ); -- user_setting CREATE TABLE `user_setting` ( `user_id` INT NOT NULL, - `key` VARCHAR(255) NOT NULL, + `key` VARCHAR(256) NOT NULL, `value` LONGTEXT NOT NULL, UNIQUE(`user_id`,`key`) ); @@ -54,9 +54,9 @@ CREATE TABLE `memo` ( `creator_id` INT NOT NULL, `created_ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, - `row_status` VARCHAR(255) NOT NULL DEFAULT 'NORMAL', + `row_status` VARCHAR(256) NOT NULL DEFAULT 'NORMAL', `content` TEXT NOT NULL, - `visibility` VARCHAR(255) NOT NULL DEFAULT 'PRIVATE' + `visibility` VARCHAR(256) NOT NULL DEFAULT 'PRIVATE' ); -- memo_organizer @@ -84,15 +84,15 @@ CREATE TABLE `resource` ( `filename` TEXT NOT NULL, `blob` MEDIUMBLOB, `external_link` TEXT NOT NULL, - `type` VARCHAR(255) NOT NULL DEFAULT '', + `type` VARCHAR(256) NOT NULL DEFAULT '', `size` INT NOT NULL DEFAULT '0', - `internal_path` VARCHAR(255) NOT NULL DEFAULT '', + `internal_path` VARCHAR(256) NOT NULL DEFAULT '', `memo_id` INT DEFAULT NULL ); -- tag CREATE TABLE `tag` ( - `name` VARCHAR(255) NOT NULL, + `name` VARCHAR(256) NOT NULL, `creator_id` INT NOT NULL, UNIQUE(`name`,`creator_id`) ); @@ -102,8 +102,8 @@ CREATE TABLE `activity` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `creator_id` INT NOT NULL, `created_ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, - `type` VARCHAR(255) NOT NULL DEFAULT '', - `level` VARCHAR(255) NOT NULL DEFAULT 'INFO', + `type` VARCHAR(256) NOT NULL DEFAULT '', + `level` VARCHAR(256) NOT NULL DEFAULT 'INFO', `payload` TEXT NOT NULL ); diff --git a/store/db/postgres/migration/dev/LATEST__SCHEMA.sql b/store/db/postgres/migration/dev/LATEST__SCHEMA.sql index f60d1fdd..1a52b493 100644 --- a/store/db/postgres/migration/dev/LATEST__SCHEMA.sql +++ b/store/db/postgres/migration/dev/LATEST__SCHEMA.sql @@ -1,41 +1,28 @@ -- drop all tables first (PostgreSQL style) DROP TABLE IF EXISTS migration_history CASCADE; - DROP TABLE IF EXISTS system_setting CASCADE; - DROP TABLE IF EXISTS "user" CASCADE; - DROP TABLE IF EXISTS user_setting CASCADE; - DROP TABLE IF EXISTS memo CASCADE; - DROP TABLE IF EXISTS memo_organizer CASCADE; - DROP TABLE IF EXISTS memo_relation CASCADE; - DROP TABLE IF EXISTS resource CASCADE; - DROP TABLE IF EXISTS tag CASCADE; - DROP TABLE IF EXISTS activity CASCADE; - DROP TABLE IF EXISTS storage CASCADE; - DROP TABLE IF EXISTS idp CASCADE; - DROP TABLE IF EXISTS inbox CASCADE; - DROP TABLE IF EXISTS webhook CASCADE; -- migration_history CREATE TABLE migration_history ( - version VARCHAR(255) NOT NULL PRIMARY KEY, + version TEXT NOT NULL PRIMARY KEY, created_ts TIMESTAMP WITHOUT TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP ); -- system_setting CREATE TABLE system_setting ( - name VARCHAR(255) NOT NULL PRIMARY KEY, + name TEXT NOT NULL PRIMARY KEY, value TEXT NOT NULL, description TEXT NOT NULL ); @@ -45,91 +32,88 @@ CREATE TABLE "user" ( id SERIAL PRIMARY KEY, created_ts TIMESTAMP WITHOUT TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_ts TIMESTAMP WITHOUT TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP, - row_status VARCHAR(255) NOT NULL DEFAULT 'NORMAL', - username VARCHAR(255) NOT NULL UNIQUE, - role VARCHAR(255) NOT NULL DEFAULT 'USER', - email VARCHAR(255) NOT NULL DEFAULT '', - nickname VARCHAR(255) NOT NULL DEFAULT '', - password_hash VARCHAR(255) NOT NULL, + row_status TEXT NOT NULL DEFAULT 'NORMAL', + username TEXT NOT NULL UNIQUE, + role TEXT NOT NULL DEFAULT 'USER', + email TEXT NOT NULL DEFAULT '', + nickname TEXT NOT NULL DEFAULT '', + password_hash TEXT NOT NULL, avatar_url TEXT NOT NULL ); -- user_setting CREATE TABLE user_setting ( - user_id INT NOT NULL, - key VARCHAR(255) NOT NULL, + user_id INTEGER NOT NULL, + key TEXT NOT NULL, value TEXT NOT NULL, - UNIQUE(user_id, key), - FOREIGN KEY (user_id) REFERENCES "user"(id) ON DELETE CASCADE + UNIQUE(user_id, key) ); -- memo CREATE TABLE memo ( id SERIAL PRIMARY KEY, - creator_id INT NOT NULL, + creator_id INTEGER NOT NULL, created_ts TIMESTAMP WITHOUT TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_ts TIMESTAMP WITHOUT TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP, - row_status VARCHAR(255) NOT NULL DEFAULT 'NORMAL', + row_status TEXT NOT NULL DEFAULT 'NORMAL', content TEXT NOT NULL, - visibility VARCHAR(255) NOT NULL DEFAULT 'PRIVATE' + visibility TEXT NOT NULL DEFAULT 'PRIVATE' ); -- memo_organizer CREATE TABLE memo_organizer ( - memo_id INT NOT NULL, - user_id INT NOT NULL, - pinned INT NOT NULL DEFAULT 0, + memo_id INTEGER NOT NULL, + user_id INTEGER NOT NULL, + pinned INTEGER NOT NULL DEFAULT 0, UNIQUE(memo_id, user_id) ); -- memo_relation CREATE TABLE memo_relation ( - memo_id INT NOT NULL, - related_memo_id INT NOT NULL, - type VARCHAR(256) NOT NULL, - UNIQUE(memo_id, related_memo_id, type), - FOREIGN KEY (memo_id) REFERENCES memo(id) ON DELETE CASCADE, - FOREIGN KEY (related_memo_id) REFERENCES memo(id) ON DELETE CASCADE + memo_id INTEGER NOT NULL, + related_memo_id INTEGER NOT NULL, + type TEXT NOT NULL, + UNIQUE(memo_id, related_memo_id, type) ); -- resource CREATE TABLE resource ( id SERIAL PRIMARY KEY, - creator_id INT NOT NULL, + creator_id INTEGER NOT NULL, created_ts TIMESTAMP WITHOUT TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_ts TIMESTAMP WITHOUT TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP, filename TEXT NOT NULL, blob BYTEA, external_link TEXT NOT NULL, - type VARCHAR(255) NOT NULL DEFAULT '', - size INT NOT NULL DEFAULT 0, - internal_path VARCHAR(255) NOT NULL DEFAULT '', - memo_id INT DEFAULT NULL + type TEXT NOT NULL DEFAULT '', + size INTEGER NOT NULL DEFAULT 0, + internal_path TEXT NOT NULL DEFAULT '', + memo_id INTEGER DEFAULT NULL ); -- tag CREATE TABLE tag ( - name VARCHAR(255) NOT NULL, - creator_id INT NOT NULL, + name TEXT NOT NULL, + creator_id INTEGER NOT NULL, UNIQUE(name, creator_id) ); -- activity CREATE TABLE activity ( id SERIAL PRIMARY KEY, - creator_id INT NOT NULL, + creator_id INTEGER NOT NULL, created_ts TIMESTAMP WITHOUT TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP, - type VARCHAR(255) NOT NULL DEFAULT '', - level VARCHAR(255) NOT NULL DEFAULT 'INFO', - payload TEXT NOT NULL + type TEXT NOT NULL DEFAULT '', + level TEXT NOT NULL DEFAULT 'INFO', + payload JSONB NOT NULL DEFAULT '{}' ); -- storage CREATE TABLE storage ( id SERIAL PRIMARY KEY, - name VARCHAR(256) NOT NULL, - type VARCHAR(256) NOT NULL, - config TEXT NOT NULL + name TEXT NOT NULL, + type TEXT NOT NULL, + config JSONB NOT NULL DEFAULT '{}' ); -- idp @@ -137,16 +121,16 @@ CREATE TABLE idp ( id SERIAL PRIMARY KEY, name TEXT NOT NULL, type TEXT NOT NULL, - identifier_filter VARCHAR(256) NOT NULL DEFAULT '', - config TEXT NOT NULL + identifier_filter TEXT NOT NULL DEFAULT '', + config JSONB NOT NULL DEFAULT '{}' ); -- inbox CREATE TABLE inbox ( id SERIAL PRIMARY KEY, created_ts TIMESTAMP WITHOUT TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP, - sender_id INT NOT NULL, - receiver_id INT NOT NULL, + sender_id INTEGER NOT NULL, + receiver_id INTEGER NOT NULL, status TEXT NOT NULL, message TEXT NOT NULL ); @@ -157,7 +141,7 @@ CREATE TABLE webhook ( created_ts TIMESTAMP WITHOUT TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_ts TIMESTAMP WITHOUT TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP, row_status TEXT NOT NULL DEFAULT 'NORMAL', - creator_id INT NOT NULL, + creator_id INTEGER NOT NULL, name TEXT NOT NULL, url TEXT NOT NULL -); \ No newline at end of file +); diff --git a/store/db/postgres/migration/prod/LATEST__SCHEMA.sql b/store/db/postgres/migration/prod/LATEST__SCHEMA.sql index f60d1fdd..1a52b493 100644 --- a/store/db/postgres/migration/prod/LATEST__SCHEMA.sql +++ b/store/db/postgres/migration/prod/LATEST__SCHEMA.sql @@ -1,41 +1,28 @@ -- drop all tables first (PostgreSQL style) DROP TABLE IF EXISTS migration_history CASCADE; - DROP TABLE IF EXISTS system_setting CASCADE; - DROP TABLE IF EXISTS "user" CASCADE; - DROP TABLE IF EXISTS user_setting CASCADE; - DROP TABLE IF EXISTS memo CASCADE; - DROP TABLE IF EXISTS memo_organizer CASCADE; - DROP TABLE IF EXISTS memo_relation CASCADE; - DROP TABLE IF EXISTS resource CASCADE; - DROP TABLE IF EXISTS tag CASCADE; - DROP TABLE IF EXISTS activity CASCADE; - DROP TABLE IF EXISTS storage CASCADE; - DROP TABLE IF EXISTS idp CASCADE; - DROP TABLE IF EXISTS inbox CASCADE; - DROP TABLE IF EXISTS webhook CASCADE; -- migration_history CREATE TABLE migration_history ( - version VARCHAR(255) NOT NULL PRIMARY KEY, + version TEXT NOT NULL PRIMARY KEY, created_ts TIMESTAMP WITHOUT TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP ); -- system_setting CREATE TABLE system_setting ( - name VARCHAR(255) NOT NULL PRIMARY KEY, + name TEXT NOT NULL PRIMARY KEY, value TEXT NOT NULL, description TEXT NOT NULL ); @@ -45,91 +32,88 @@ CREATE TABLE "user" ( id SERIAL PRIMARY KEY, created_ts TIMESTAMP WITHOUT TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_ts TIMESTAMP WITHOUT TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP, - row_status VARCHAR(255) NOT NULL DEFAULT 'NORMAL', - username VARCHAR(255) NOT NULL UNIQUE, - role VARCHAR(255) NOT NULL DEFAULT 'USER', - email VARCHAR(255) NOT NULL DEFAULT '', - nickname VARCHAR(255) NOT NULL DEFAULT '', - password_hash VARCHAR(255) NOT NULL, + row_status TEXT NOT NULL DEFAULT 'NORMAL', + username TEXT NOT NULL UNIQUE, + role TEXT NOT NULL DEFAULT 'USER', + email TEXT NOT NULL DEFAULT '', + nickname TEXT NOT NULL DEFAULT '', + password_hash TEXT NOT NULL, avatar_url TEXT NOT NULL ); -- user_setting CREATE TABLE user_setting ( - user_id INT NOT NULL, - key VARCHAR(255) NOT NULL, + user_id INTEGER NOT NULL, + key TEXT NOT NULL, value TEXT NOT NULL, - UNIQUE(user_id, key), - FOREIGN KEY (user_id) REFERENCES "user"(id) ON DELETE CASCADE + UNIQUE(user_id, key) ); -- memo CREATE TABLE memo ( id SERIAL PRIMARY KEY, - creator_id INT NOT NULL, + creator_id INTEGER NOT NULL, created_ts TIMESTAMP WITHOUT TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_ts TIMESTAMP WITHOUT TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP, - row_status VARCHAR(255) NOT NULL DEFAULT 'NORMAL', + row_status TEXT NOT NULL DEFAULT 'NORMAL', content TEXT NOT NULL, - visibility VARCHAR(255) NOT NULL DEFAULT 'PRIVATE' + visibility TEXT NOT NULL DEFAULT 'PRIVATE' ); -- memo_organizer CREATE TABLE memo_organizer ( - memo_id INT NOT NULL, - user_id INT NOT NULL, - pinned INT NOT NULL DEFAULT 0, + memo_id INTEGER NOT NULL, + user_id INTEGER NOT NULL, + pinned INTEGER NOT NULL DEFAULT 0, UNIQUE(memo_id, user_id) ); -- memo_relation CREATE TABLE memo_relation ( - memo_id INT NOT NULL, - related_memo_id INT NOT NULL, - type VARCHAR(256) NOT NULL, - UNIQUE(memo_id, related_memo_id, type), - FOREIGN KEY (memo_id) REFERENCES memo(id) ON DELETE CASCADE, - FOREIGN KEY (related_memo_id) REFERENCES memo(id) ON DELETE CASCADE + memo_id INTEGER NOT NULL, + related_memo_id INTEGER NOT NULL, + type TEXT NOT NULL, + UNIQUE(memo_id, related_memo_id, type) ); -- resource CREATE TABLE resource ( id SERIAL PRIMARY KEY, - creator_id INT NOT NULL, + creator_id INTEGER NOT NULL, created_ts TIMESTAMP WITHOUT TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_ts TIMESTAMP WITHOUT TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP, filename TEXT NOT NULL, blob BYTEA, external_link TEXT NOT NULL, - type VARCHAR(255) NOT NULL DEFAULT '', - size INT NOT NULL DEFAULT 0, - internal_path VARCHAR(255) NOT NULL DEFAULT '', - memo_id INT DEFAULT NULL + type TEXT NOT NULL DEFAULT '', + size INTEGER NOT NULL DEFAULT 0, + internal_path TEXT NOT NULL DEFAULT '', + memo_id INTEGER DEFAULT NULL ); -- tag CREATE TABLE tag ( - name VARCHAR(255) NOT NULL, - creator_id INT NOT NULL, + name TEXT NOT NULL, + creator_id INTEGER NOT NULL, UNIQUE(name, creator_id) ); -- activity CREATE TABLE activity ( id SERIAL PRIMARY KEY, - creator_id INT NOT NULL, + creator_id INTEGER NOT NULL, created_ts TIMESTAMP WITHOUT TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP, - type VARCHAR(255) NOT NULL DEFAULT '', - level VARCHAR(255) NOT NULL DEFAULT 'INFO', - payload TEXT NOT NULL + type TEXT NOT NULL DEFAULT '', + level TEXT NOT NULL DEFAULT 'INFO', + payload JSONB NOT NULL DEFAULT '{}' ); -- storage CREATE TABLE storage ( id SERIAL PRIMARY KEY, - name VARCHAR(256) NOT NULL, - type VARCHAR(256) NOT NULL, - config TEXT NOT NULL + name TEXT NOT NULL, + type TEXT NOT NULL, + config JSONB NOT NULL DEFAULT '{}' ); -- idp @@ -137,16 +121,16 @@ CREATE TABLE idp ( id SERIAL PRIMARY KEY, name TEXT NOT NULL, type TEXT NOT NULL, - identifier_filter VARCHAR(256) NOT NULL DEFAULT '', - config TEXT NOT NULL + identifier_filter TEXT NOT NULL DEFAULT '', + config JSONB NOT NULL DEFAULT '{}' ); -- inbox CREATE TABLE inbox ( id SERIAL PRIMARY KEY, created_ts TIMESTAMP WITHOUT TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP, - sender_id INT NOT NULL, - receiver_id INT NOT NULL, + sender_id INTEGER NOT NULL, + receiver_id INTEGER NOT NULL, status TEXT NOT NULL, message TEXT NOT NULL ); @@ -157,7 +141,7 @@ CREATE TABLE webhook ( created_ts TIMESTAMP WITHOUT TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_ts TIMESTAMP WITHOUT TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP, row_status TEXT NOT NULL DEFAULT 'NORMAL', - creator_id INT NOT NULL, + creator_id INTEGER NOT NULL, name TEXT NOT NULL, url TEXT NOT NULL -); \ No newline at end of file +);