Files
CyberPanel/webmail/sql/install_wm_tables.sql
master3395 3e8750ab58 webmail: v2.5.5-dev UI and backend improvements
- Resizable folder sidebar with persisted width; nested folder tree with expand/collapse
- Message search: scope all folders or single folder; listMessages honors UID filter
- Drag-and-drop messages onto folders to move (multi-select supported)
- SnappyMail import paths, folder settings store, wm DB migration and SQL install
- IMAP quoted mailbox, IPv4 SMTP relay, compose recipient handling
- Modal new/delete folder flows; dash-free UI copy; folder pills in search results
2026-03-25 23:18:54 +01:00

79 lines
3.5 KiB
SQL

-- CyberPanel Webmail: create wm_* tables when Django migration graph cannot run
-- (e.g. dockerManager depends on loginSystem migrations that do not exist).
-- Safe to run multiple times (CREATE TABLE IF NOT EXISTS).
SET NAMES utf8mb4;
CREATE TABLE IF NOT EXISTS `wm_contacts` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`owner_email` varchar(200) NOT NULL,
`display_name` varchar(200) NOT NULL DEFAULT '',
`email_address` varchar(200) NOT NULL,
`phone` varchar(50) NOT NULL DEFAULT '',
`organization` varchar(200) NOT NULL DEFAULT '',
`notes` longtext NOT NULL,
`is_auto_collected` tinyint(1) NOT NULL DEFAULT 0,
`created_at` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
PRIMARY KEY (`id`),
UNIQUE KEY `wm_contacts_owner_email_unique` (`owner_email`,`email_address`),
KEY `wm_contacts_owner_email_idx` (`owner_email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS `wm_contact_groups` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`owner_email` varchar(200) NOT NULL,
`name` varchar(100) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `wm_contact_groups_owner_email_name_unique` (`owner_email`,`name`),
KEY `wm_contact_groups_owner_email_idx` (`owner_email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS `wm_contact_group_members` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`contact_id` bigint(20) NOT NULL,
`group_id` bigint(20) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `wm_cgm_contact_group_unique` (`contact_id`,`group_id`),
KEY `wm_cgm_contact_fk` (`contact_id`),
KEY `wm_cgm_group_fk` (`group_id`),
CONSTRAINT `wm_cgm_contact_fk` FOREIGN KEY (`contact_id`) REFERENCES `wm_contacts` (`id`) ON DELETE CASCADE,
CONSTRAINT `wm_cgm_group_fk` FOREIGN KEY (`group_id`) REFERENCES `wm_contact_groups` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS `wm_sessions` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`session_key` varchar(64) NOT NULL,
`email_account` varchar(200) NOT NULL,
`created_at` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
`last_active` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
PRIMARY KEY (`id`),
UNIQUE KEY `wm_sessions_session_key_unique` (`session_key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS `wm_settings` (
`email_account` varchar(200) NOT NULL,
`display_name` varchar(200) NOT NULL DEFAULT '',
`signature_html` longtext NOT NULL,
`messages_per_page` int(11) NOT NULL DEFAULT 25,
`default_reply_behavior` varchar(20) NOT NULL DEFAULT 'reply',
`theme_preference` varchar(20) NOT NULL DEFAULT 'auto',
`auto_collect_contacts` tinyint(1) NOT NULL DEFAULT 1,
PRIMARY KEY (`email_account`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS `wm_sieve_rules` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`email_account` varchar(200) NOT NULL,
`name` varchar(200) NOT NULL,
`priority` int(11) NOT NULL DEFAULT 0,
`is_active` tinyint(1) NOT NULL DEFAULT 1,
`condition_field` varchar(50) NOT NULL,
`condition_type` varchar(50) NOT NULL,
`condition_value` varchar(500) NOT NULL,
`action_type` varchar(50) NOT NULL,
`action_value` varchar(500) NOT NULL DEFAULT '',
`sieve_script` longtext NOT NULL,
PRIMARY KEY (`id`),
KEY `wm_sieve_rules_email_account_idx` (`email_account`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;