0.29.1原版
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
-- inbox
|
||||
CREATE TABLE `inbox` (
|
||||
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
`created_ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`sender_id` INT NOT NULL,
|
||||
`receiver_id` INT NOT NULL,
|
||||
`status` TEXT NOT NULL,
|
||||
`message` TEXT NOT NULL
|
||||
);
|
||||
@@ -0,0 +1 @@
|
||||
DELETE FROM `activity`;
|
||||
@@ -0,0 +1,3 @@
|
||||
ALTER TABLE `system_setting` MODIFY `value` LONGTEXT NOT NULL;
|
||||
ALTER TABLE `user_setting` MODIFY `value` LONGTEXT NOT NULL;
|
||||
ALTER TABLE `user` MODIFY `avatar_url` LONGTEXT NOT NULL;
|
||||
@@ -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
|
||||
);
|
||||
@@ -0,0 +1,4 @@
|
||||
UPDATE `user_setting` SET `key` = 'USER_SETTING_LOCALE', `value` = REPLACE(`value`, '"', '') WHERE `key` = 'locale';
|
||||
UPDATE `user_setting` SET `key` = 'USER_SETTING_APPEARANCE', `value` = REPLACE(`value`, '"', '') WHERE `key` = 'appearance';
|
||||
UPDATE `user_setting` SET `key` = 'USER_SETTING_MEMO_VISIBILITY', `value` = REPLACE(`value`, '"', '') WHERE `key` = 'memo-visibility';
|
||||
UPDATE `user_setting` SET `key` = 'USER_SETTING_TELEGRAM_USER_ID', `value` = REPLACE(`value`, '"', '') WHERE `key` = 'telegram-user-id';
|
||||
@@ -0,0 +1,15 @@
|
||||
ALTER TABLE `memo` ADD COLUMN `resource_name` VARCHAR(256) AFTER `id`;
|
||||
|
||||
UPDATE `memo` SET `resource_name` = uuid();
|
||||
|
||||
ALTER TABLE `memo` MODIFY COLUMN `resource_name` VARCHAR(256) NOT NULL;
|
||||
|
||||
CREATE UNIQUE INDEX idx_memo_resource_name ON `memo` (`resource_name`);
|
||||
|
||||
ALTER TABLE `resource` ADD COLUMN `resource_name` VARCHAR(256) AFTER `id`;
|
||||
|
||||
UPDATE `resource` SET `resource_name` = uuid();
|
||||
|
||||
ALTER TABLE `resource` MODIFY COLUMN `resource_name` VARCHAR(256) NOT NULL;
|
||||
|
||||
CREATE UNIQUE INDEX idx_resource_resource_name ON `resource` (`resource_name`);
|
||||
@@ -0,0 +1,9 @@
|
||||
-- reaction
|
||||
CREATE TABLE `reaction` (
|
||||
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
`created_ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`creator_id` INT NOT NULL,
|
||||
`content_id` VARCHAR(256) NOT NULL,
|
||||
`reaction_type` VARCHAR(256) NOT NULL,
|
||||
UNIQUE(`creator_id`,`content_id`,`reaction_type`)
|
||||
);
|
||||
@@ -0,0 +1 @@
|
||||
ALTER TABLE `user` ADD COLUMN `description` VARCHAR(256) NOT NULL DEFAULT '';
|
||||
@@ -0,0 +1,3 @@
|
||||
ALTER TABLE `memo` RENAME COLUMN `resource_name` TO `uid`;
|
||||
|
||||
ALTER TABLE `resource` RENAME COLUMN `resource_name` TO `uid`;
|
||||
@@ -0,0 +1,11 @@
|
||||
ALTER TABLE `resource` ADD COLUMN `storage_type` VARCHAR(256) NOT NULL DEFAULT '';
|
||||
ALTER TABLE `resource` ADD COLUMN `reference` VARCHAR(256) NOT NULL DEFAULT '';
|
||||
ALTER TABLE `resource` ADD COLUMN `payload` TEXT NOT NULL;
|
||||
|
||||
UPDATE `resource` SET `payload` = '{}';
|
||||
|
||||
UPDATE `resource` SET `storage_type` = 'LOCAL', `reference` = `internal_path` WHERE `internal_path` IS NOT NULL AND `internal_path` != '';
|
||||
UPDATE `resource` SET `storage_type` = 'EXTERNAL', `reference` = `external_link` WHERE `external_link` IS NOT NULL AND `external_link` != '';
|
||||
|
||||
ALTER TABLE `resource` DROP COLUMN `internal_path`;
|
||||
ALTER TABLE `resource` DROP COLUMN `external_link`;
|
||||
@@ -0,0 +1,3 @@
|
||||
ALTER TABLE `memo` ADD COLUMN `tags_temp` JSON;
|
||||
UPDATE `memo` SET `tags_temp` = '[]';
|
||||
ALTER TABLE `memo` CHANGE COLUMN `tags_temp` `tags` JSON NOT NULL;
|
||||
@@ -0,0 +1,3 @@
|
||||
ALTER TABLE `memo` ADD COLUMN `payload_temp` JSON;
|
||||
UPDATE `memo` SET `payload_temp` = '{}';
|
||||
ALTER TABLE `memo` CHANGE COLUMN `payload_temp` `payload` JSON NOT NULL;
|
||||
@@ -0,0 +1 @@
|
||||
DROP TABLE IF EXISTS `tag`;
|
||||
@@ -0,0 +1,12 @@
|
||||
UPDATE `reaction` SET `reaction_type` = '👍' WHERE `reaction_type` = 'THUMBS_UP';
|
||||
UPDATE `reaction` SET `reaction_type` = '👎' WHERE `reaction_type` = 'THUMBS_DOWN';
|
||||
UPDATE `reaction` SET `reaction_type` = '💛' WHERE `reaction_type` = 'HEART';
|
||||
UPDATE `reaction` SET `reaction_type` = '🔥' WHERE `reaction_type` = 'FIRE';
|
||||
UPDATE `reaction` SET `reaction_type` = '👏' WHERE `reaction_type` = 'CLAPPING_HANDS';
|
||||
UPDATE `reaction` SET `reaction_type` = '😂' WHERE `reaction_type` = 'LAUGH';
|
||||
UPDATE `reaction` SET `reaction_type` = '👌' WHERE `reaction_type` = 'OK_HAND';
|
||||
UPDATE `reaction` SET `reaction_type` = '🚀' WHERE `reaction_type` = 'ROCKET';
|
||||
UPDATE `reaction` SET `reaction_type` = '👀' WHERE `reaction_type` = 'EYES';
|
||||
UPDATE `reaction` SET `reaction_type` = '🤔' WHERE `reaction_type` = 'THINKING_FACE';
|
||||
UPDATE `reaction` SET `reaction_type` = '🤡' WHERE `reaction_type` = 'CLOWN_FACE';
|
||||
UPDATE `reaction` SET `reaction_type` = '❓' WHERE `reaction_type` = 'QUESTION_MARK';
|
||||
@@ -0,0 +1,2 @@
|
||||
-- Drop deprecated tags column.
|
||||
ALTER TABLE `memo` DROP COLUMN `tags`;
|
||||
@@ -0,0 +1,8 @@
|
||||
-- Add pinned column.
|
||||
ALTER TABLE `memo` ADD COLUMN `pinned` BOOLEAN NOT NULL DEFAULT FALSE;
|
||||
|
||||
-- Update pinned column from memo_organizer.
|
||||
UPDATE memo
|
||||
JOIN memo_organizer ON memo.id = memo_organizer.memo_id
|
||||
SET memo.pinned = TRUE
|
||||
WHERE memo_organizer.pinned = 1;
|
||||
@@ -0,0 +1,2 @@
|
||||
-- https://github.com/usememos/memos/issues/4322
|
||||
ALTER TABLE `resource` MODIFY `reference` TEXT NOT NULL DEFAULT ('');
|
||||
@@ -0,0 +1 @@
|
||||
DROP TABLE IF EXISTS webhook;
|
||||
@@ -0,0 +1 @@
|
||||
RENAME TABLE resource TO attachment;
|
||||
@@ -0,0 +1 @@
|
||||
DROP TABLE IF EXISTS memo_organizer;
|
||||
@@ -0,0 +1 @@
|
||||
UPDATE `user` SET `role` = 'ADMIN' WHERE `role` = 'HOST';
|
||||
@@ -0,0 +1,6 @@
|
||||
-- Set storage type to DATABASE for existing instances that have no storage setting configured.
|
||||
-- This preserves backward-compatible behavior before the default was changed to LOCAL.
|
||||
INSERT INTO system_setting (name, value, description)
|
||||
SELECT 'STORAGE', '{"storageType":"DATABASE"}', ''
|
||||
FROM DUAL
|
||||
WHERE NOT EXISTS (SELECT 1 FROM system_setting WHERE name = 'STORAGE');
|
||||
@@ -0,0 +1,8 @@
|
||||
-- Add uid column to idp table
|
||||
ALTER TABLE `idp` ADD COLUMN `uid` VARCHAR(256) NOT NULL DEFAULT '';
|
||||
|
||||
-- Populate uid for existing rows using hex of id as a fallback
|
||||
UPDATE `idp` SET `uid` = LOWER(LPAD(HEX(`id`), 8, '0')) WHERE `uid` = '';
|
||||
|
||||
-- Create unique index on uid
|
||||
ALTER TABLE `idp` ADD UNIQUE INDEX `idx_idp_uid` (`uid`);
|
||||
@@ -0,0 +1,14 @@
|
||||
UPDATE `inbox` AS i
|
||||
JOIN `activity` AS a
|
||||
ON a.`id` = CAST(JSON_UNQUOTE(JSON_EXTRACT(i.`message`, '$.activityId')) AS UNSIGNED)
|
||||
SET i.`message` = JSON_SET(
|
||||
JSON_REMOVE(i.`message`, '$.activityId'),
|
||||
'$.memoComment',
|
||||
JSON_OBJECT(
|
||||
'memoId',
|
||||
JSON_EXTRACT(a.`payload`, '$.memoComment.memoId'),
|
||||
'relatedMemoId',
|
||||
JSON_EXTRACT(a.`payload`, '$.memoComment.relatedMemoId')
|
||||
)
|
||||
)
|
||||
WHERE JSON_EXTRACT(i.`message`, '$.activityId') IS NOT NULL;
|
||||
@@ -0,0 +1 @@
|
||||
DROP TABLE `activity`;
|
||||
@@ -0,0 +1,14 @@
|
||||
-- memo_share stores per-memo share grants (one row per share link).
|
||||
-- uid is the opaque bearer token included in the share URL.
|
||||
-- ON DELETE CASCADE ensures grants are cleaned up when the parent memo is deleted.
|
||||
CREATE TABLE memo_share (
|
||||
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
uid VARCHAR(255) NOT NULL UNIQUE,
|
||||
memo_id INT NOT NULL,
|
||||
creator_id INT NOT NULL,
|
||||
created_ts BIGINT NOT NULL DEFAULT (UNIX_TIMESTAMP()),
|
||||
expires_ts BIGINT DEFAULT NULL,
|
||||
FOREIGN KEY (memo_id) REFERENCES memo(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE INDEX idx_memo_share_memo_id ON memo_share(memo_id);
|
||||
@@ -0,0 +1,15 @@
|
||||
-- user_identity stores the linkage between an external identity subject and a local user.
|
||||
-- (provider, extern_uid) is unique across the table; provider stores the idp.uid.
|
||||
-- Each local user can link at most one external account per provider.
|
||||
CREATE TABLE `user_identity` (
|
||||
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
`user_id` INT NOT NULL,
|
||||
`provider` VARCHAR(256) NOT NULL,
|
||||
`extern_uid` VARCHAR(256) NOT NULL,
|
||||
`created_ts` BIGINT NOT NULL DEFAULT (UNIX_TIMESTAMP()),
|
||||
`updated_ts` BIGINT NOT NULL DEFAULT (UNIX_TIMESTAMP()),
|
||||
UNIQUE (`provider`, `extern_uid`),
|
||||
UNIQUE (`user_id`, `provider`)
|
||||
);
|
||||
|
||||
CREATE INDEX `idx_user_identity_user_id` ON `user_identity`(`user_id`);
|
||||
@@ -0,0 +1,125 @@
|
||||
-- system_setting
|
||||
CREATE TABLE `system_setting` (
|
||||
`name` VARCHAR(256) NOT NULL PRIMARY KEY,
|
||||
`value` LONGTEXT NOT NULL,
|
||||
`description` TEXT NOT NULL
|
||||
);
|
||||
|
||||
-- user
|
||||
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(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,
|
||||
`description` VARCHAR(256) NOT NULL DEFAULT ''
|
||||
);
|
||||
|
||||
-- user_setting
|
||||
CREATE TABLE `user_setting` (
|
||||
`user_id` INT NOT NULL,
|
||||
`key` VARCHAR(256) NOT NULL,
|
||||
`value` LONGTEXT NOT NULL,
|
||||
UNIQUE(`user_id`,`key`)
|
||||
);
|
||||
|
||||
-- memo
|
||||
CREATE TABLE `memo` (
|
||||
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
`uid` VARCHAR(256) NOT NULL UNIQUE,
|
||||
`creator_id` INT NOT NULL,
|
||||
`created_ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`updated_ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`row_status` VARCHAR(256) NOT NULL DEFAULT 'NORMAL',
|
||||
`content` TEXT NOT NULL,
|
||||
`visibility` VARCHAR(256) NOT NULL DEFAULT 'PRIVATE',
|
||||
`pinned` BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
`payload` JSON NOT NULL
|
||||
);
|
||||
|
||||
-- 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`)
|
||||
);
|
||||
|
||||
-- attachment
|
||||
CREATE TABLE `attachment` (
|
||||
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
`uid` VARCHAR(256) NOT NULL UNIQUE,
|
||||
`creator_id` INT NOT NULL,
|
||||
`created_ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`updated_ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`filename` TEXT NOT NULL,
|
||||
`blob` MEDIUMBLOB,
|
||||
`type` VARCHAR(256) NOT NULL DEFAULT '',
|
||||
`size` INT NOT NULL DEFAULT '0',
|
||||
`memo_id` INT DEFAULT NULL,
|
||||
`storage_type` VARCHAR(256) NOT NULL DEFAULT '',
|
||||
`reference` TEXT NOT NULL DEFAULT (''),
|
||||
`payload` TEXT NOT NULL
|
||||
);
|
||||
|
||||
-- idp
|
||||
CREATE TABLE `idp` (
|
||||
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
`uid` VARCHAR(256) NOT NULL UNIQUE,
|
||||
`name` TEXT NOT NULL,
|
||||
`type` TEXT NOT NULL,
|
||||
`identifier_filter` VARCHAR(256) NOT NULL DEFAULT '',
|
||||
`config` TEXT NOT NULL
|
||||
);
|
||||
|
||||
-- inbox
|
||||
CREATE TABLE `inbox` (
|
||||
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
`created_ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`sender_id` INT NOT NULL,
|
||||
`receiver_id` INT NOT NULL,
|
||||
`status` TEXT NOT NULL,
|
||||
`message` TEXT NOT NULL
|
||||
);
|
||||
|
||||
-- reaction
|
||||
CREATE TABLE `reaction` (
|
||||
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
`created_ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`creator_id` INT NOT NULL,
|
||||
`content_id` VARCHAR(256) NOT NULL,
|
||||
`reaction_type` VARCHAR(256) NOT NULL,
|
||||
UNIQUE(`creator_id`,`content_id`,`reaction_type`)
|
||||
);
|
||||
|
||||
-- memo_share
|
||||
CREATE TABLE `memo_share` (
|
||||
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
`uid` VARCHAR(255) NOT NULL UNIQUE,
|
||||
`memo_id` INT NOT NULL,
|
||||
`creator_id` INT NOT NULL,
|
||||
`created_ts` BIGINT NOT NULL DEFAULT (UNIX_TIMESTAMP()),
|
||||
`expires_ts` BIGINT DEFAULT NULL,
|
||||
FOREIGN KEY (`memo_id`) REFERENCES `memo`(`id`) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE INDEX `idx_memo_share_memo_id` ON `memo_share`(`memo_id`);
|
||||
|
||||
-- user_identity
|
||||
CREATE TABLE `user_identity` (
|
||||
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
`user_id` INT NOT NULL,
|
||||
`provider` VARCHAR(256) NOT NULL,
|
||||
`extern_uid` VARCHAR(256) NOT NULL,
|
||||
`created_ts` BIGINT NOT NULL DEFAULT (UNIX_TIMESTAMP()),
|
||||
`updated_ts` BIGINT NOT NULL DEFAULT (UNIX_TIMESTAMP()),
|
||||
UNIQUE (`provider`, `extern_uid`),
|
||||
UNIQUE (`user_id`, `provider`)
|
||||
);
|
||||
|
||||
CREATE INDEX `idx_user_identity_user_id` ON `user_identity`(`user_id`);
|
||||
Reference in New Issue
Block a user