41 lines
1.6 KiB
SQL
41 lines
1.6 KiB
SQL
CREATE TABLE resource_editor_settings (
|
|
resource_kind VARCHAR(32) NOT NULL,
|
|
resource_slug VARCHAR(512) NOT NULL,
|
|
authorship_mode VARCHAR(16) NOT NULL DEFAULT 'simple',
|
|
colors_enabled BOOLEAN NOT NULL DEFAULT TRUE,
|
|
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (resource_kind, resource_slug)
|
|
);
|
|
|
|
INSERT INTO resource_editor_settings (
|
|
resource_kind, resource_slug, authorship_mode, colors_enabled, updated_at
|
|
)
|
|
SELECT 'pad', p.slug, preferences.authorship_mode, preferences.colors_enabled,
|
|
CURRENT_TIMESTAMP
|
|
FROM user_editor_preferences preferences
|
|
JOIN pads p ON p.id = preferences.pad_id
|
|
JOIN user_pads ownership
|
|
ON ownership.pad_id = p.id
|
|
AND ownership.user_id = preferences.user_id
|
|
WHERE preferences.pad_id IS NOT NULL
|
|
ON DUPLICATE KEY UPDATE resource_slug = VALUES(resource_slug);
|
|
|
|
INSERT INTO resource_editor_settings (
|
|
resource_kind, resource_slug, authorship_mode, colors_enabled, updated_at
|
|
)
|
|
SELECT 'note', CONCAT(workspace.slug, '/', note.slug),
|
|
preferences.authorship_mode, preferences.colors_enabled,
|
|
CURRENT_TIMESTAMP
|
|
FROM user_editor_preferences preferences
|
|
JOIN notes note ON note.id = preferences.note_id
|
|
JOIN workspaces workspace ON workspace.id = note.workspace_id
|
|
JOIN user_workspaces ownership
|
|
ON ownership.workspace_id = workspace.id
|
|
AND ownership.user_id = preferences.user_id
|
|
WHERE preferences.note_id IS NOT NULL
|
|
ON DUPLICATE KEY UPDATE resource_slug = VALUES(resource_slug);
|
|
|
|
ALTER TABLE user_editor_preferences
|
|
DROP COLUMN authorship_mode,
|
|
DROP COLUMN colors_enabled;
|