Improve local filetree view state and sidebar performance
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
CREATE TABLE IF NOT EXISTS sidebar_shortcuts (
|
||||
id TEXT PRIMARY KEY,
|
||||
user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
||||
workspace_id TEXT NOT NULL,
|
||||
kind TEXT NOT NULL,
|
||||
source_kind TEXT NOT NULL DEFAULT 'local_folder',
|
||||
target_id TEXT NOT NULL,
|
||||
relative_path TEXT,
|
||||
document_id TEXT,
|
||||
title TEXT NOT NULL,
|
||||
icon TEXT,
|
||||
sort_order INTEGER NOT NULL DEFAULT 0,
|
||||
status TEXT NOT NULL DEFAULT 'active',
|
||||
metadata_json TEXT NOT NULL DEFAULT '{}',
|
||||
created_at TEXT NOT NULL,
|
||||
updated_at TEXT NOT NULL,
|
||||
revision INTEGER NOT NULL DEFAULT 1,
|
||||
UNIQUE(user_id, workspace_id, kind, target_id)
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_sidebar_shortcuts_user_workspace
|
||||
ON sidebar_shortcuts(user_id, workspace_id, status, sort_order);
|
||||
@@ -0,0 +1,21 @@
|
||||
-- 004-user-ui-preferences.sql
|
||||
-- User-scoped UI preferences for cross-browser page setting sync.
|
||||
|
||||
CREATE TABLE IF NOT EXISTS user_ui_preferences (
|
||||
id TEXT PRIMARY KEY,
|
||||
user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
||||
workspace_id TEXT NOT NULL DEFAULT '',
|
||||
source_kind TEXT NOT NULL DEFAULT '',
|
||||
scope_kind TEXT NOT NULL,
|
||||
scope_id TEXT NOT NULL,
|
||||
key TEXT NOT NULL,
|
||||
value_json TEXT NOT NULL,
|
||||
status TEXT NOT NULL DEFAULT 'active',
|
||||
created_at TEXT NOT NULL,
|
||||
updated_at TEXT NOT NULL,
|
||||
revision INTEGER NOT NULL DEFAULT 1,
|
||||
UNIQUE(user_id, workspace_id, source_kind, scope_kind, scope_id, key)
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_user_ui_preferences_lookup
|
||||
ON user_ui_preferences(user_id, workspace_id, source_kind, scope_kind, scope_id);
|
||||
@@ -0,0 +1,8 @@
|
||||
ALTER TABLE sidebar_shortcuts ADD COLUMN root_uri TEXT;
|
||||
|
||||
UPDATE sidebar_shortcuts
|
||||
SET root_uri = COALESCE(
|
||||
NULLIF(json_extract(metadata_json, '$.rootUri'), ''),
|
||||
NULLIF(json_extract(metadata_json, '$.root_uri'), '')
|
||||
)
|
||||
WHERE root_uri IS NULL OR root_uri = '';
|
||||
Reference in New Issue
Block a user