Files
Termix/plugins/session-sharing/migrations/mysql/0001_adopt_session_sharing.sql
T

68 lines
3.0 KiB
SQL

-- session-sharing 0001: adopt_session_sharing
-- Generated by termix-plugin migrations. Review before committing.
-- Hand-edited: keeps the legacy foreign keys the SDK cannot declare
-- (nullable or set-null user and host links, and links between these tables).
CREATE TABLE IF NOT EXISTS `session_shares` (
`id` varchar(255) PRIMARY KEY NOT NULL,
`host_id` int NOT NULL,
`owner_user_id` varchar(255) NOT NULL,
`protocol` text NOT NULL,
`session_id` varchar(255) NOT NULL,
`tab_instance_id` text,
`share_type` text NOT NULL,
`target_user_id` varchar(255),
`link_token` varchar(255) UNIQUE,
`permission_level` text NOT NULL DEFAULT ('read-only'),
`created_at` text NOT NULL DEFAULT (CURRENT_TIMESTAMP),
`expires_at` text NOT NULL,
`revoked_at` text,
`last_joined_at` text,
`join_count` int NOT NULL DEFAULT 0,
FOREIGN KEY (`host_id`) REFERENCES `ssh_data` (`id`) ON DELETE CASCADE,
FOREIGN KEY (`owner_user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE,
FOREIGN KEY (`target_user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
);
RENAME TABLE `session_shares` TO `p_session_sharing_shares`;
CREATE TABLE IF NOT EXISTS `session_share_participants` (
`id` int AUTO_INCREMENT PRIMARY KEY,
`share_id` varchar(255) NOT NULL,
`user_id` varchar(255),
`guest_label` text,
`joined_at` text NOT NULL DEFAULT (CURRENT_TIMESTAMP),
`left_at` text,
FOREIGN KEY (`share_id`) REFERENCES `p_session_sharing_shares` (`id`) ON DELETE CASCADE,
FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
);
RENAME TABLE `session_share_participants` TO `p_session_sharing_share_participants`;
CREATE TABLE IF NOT EXISTS `collab_rooms` (
`id` varchar(255) PRIMARY KEY NOT NULL,
`name` text NOT NULL,
`owner_user_id` varchar(255) NOT NULL,
`persistent` boolean NOT NULL DEFAULT false,
`presenter_user_id` varchar(255),
`stage_protocol` text,
`stage_host_id` int,
`stage_share_id` varchar(255),
`guest_link_token` varchar(255),
`created_at` text NOT NULL DEFAULT (CURRENT_TIMESTAMP),
`ended_at` text,
FOREIGN KEY (`owner_user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE,
FOREIGN KEY (`presenter_user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL,
FOREIGN KEY (`stage_host_id`) REFERENCES `ssh_data` (`id`) ON DELETE SET NULL,
FOREIGN KEY (`stage_share_id`) REFERENCES `p_session_sharing_shares` (`id`) ON DELETE SET NULL
);
RENAME TABLE `collab_rooms` TO `p_session_sharing_rooms`;
CREATE TABLE IF NOT EXISTS `collab_room_members` (
`id` int AUTO_INCREMENT PRIMARY KEY,
`room_id` varchar(255) NOT NULL,
`user_id` varchar(255) NOT NULL,
`room_role` text NOT NULL DEFAULT ('member'),
`added_by` varchar(255),
`created_at` text NOT NULL DEFAULT (CURRENT_TIMESTAMP),
FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE,
FOREIGN KEY (`room_id`) REFERENCES `p_session_sharing_rooms` (`id`) ON DELETE CASCADE,
FOREIGN KEY (`added_by`) REFERENCES `users` (`id`) ON DELETE SET NULL
);
RENAME TABLE `collab_room_members` TO `p_session_sharing_room_members`;