mirror of
https://github.com/usememos/memos.git
synced 2025-02-15 19:00:46 +01:00
chore: update latest schema
This commit is contained in:
parent
7fc7b19d64
commit
abda6ad041
@ -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
|
||||
|
10
store/db/mysql/migration/prod/0.18/01__webhook.sql
Normal file
10
store/db/mysql/migration/prod/0.18/01__webhook.sql
Normal file
@ -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
|
||||
);
|
4
store/db/mysql/migration/prod/0.18/02__user_setting.sql
Normal file
4
store/db/mysql/migration/prod/0.18/02__user_setting.sql
Normal file
@ -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';
|
@ -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
|
||||
);
|
||||
|
||||
|
@ -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
|
||||
);
|
||||
);
|
||||
|
@ -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
|
||||
);
|
||||
);
|
||||
|
Loading…
x
Reference in New Issue
Block a user