-- Cloaka 安装程序自动执行的表结构(与 lib/InstallSchema.php 保持一致) -- 使用 CREATE TABLE IF NOT EXISTS,重复安装不会覆盖已有数据 CREATE TABLE `cloak_site_domains` ( `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, `hostname` varchar(255) NOT NULL COMMENT '站点域名,不含协议与路径', `config_name` varchar(64) NOT NULL DEFAULT '' COMMENT '关联 check_config 配置名', `created_at` timestamp NOT NULL DEFAULT current_timestamp(), `cf_zone_id` varchar(64) DEFAULT NULL COMMENT 'Cloudflare Zone ID', `cf_nameservers` text DEFAULT NULL COMMENT 'Cloudflare NS JSON', `cf_status` varchar(32) NOT NULL DEFAULT 'local' COMMENT 'Cloudflare 状态', `cf_error` varchar(500) DEFAULT NULL COMMENT '最近错误', `cf_checked_at` datetime DEFAULT NULL COMMENT '上次检测时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_hostname` (`hostname`), KEY `idx_config_name` (`config_name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; CREATE TABLE `ip_groups` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(100) NOT NULL COMMENT '组名', `type` enum('black','white') NOT NULL COMMENT '类型:black为黑名单,white为白名单', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; CREATE TABLE `ip_list` ( `id` int(11) NOT NULL AUTO_INCREMENT, `group_id` int(11) NOT NULL COMMENT '所属组ID', `ip_address` varchar(45) NOT NULL COMMENT 'IP地址', PRIMARY KEY (`id`), KEY `idx_group_ip` (`group_id`,`ip_address`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; CREATE TABLE `visitor_logs` ( `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, `campagin_id` varchar(20) NOT NULL COMMENT '策略ID', `visit_md5_code` char(32) NOT NULL DEFAULT 'loss' COMMENT '客户端标记', `domain` varchar(35) NOT NULL COMMENT '域名', `visit_date` datetime NOT NULL COMMENT '访问日期', `IP` varchar(150) NOT NULL COMMENT 'IP', `country` varchar(10) DEFAULT NULL COMMENT '国家', `result` char(5) DEFAULT NULL COMMENT '判断结果', `reason` varchar(100) DEFAULT NULL COMMENT '判断理由', `referer` text DEFAULT NULL COMMENT '来源', `vtimes` int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '第几次访问', `client` varchar(20) DEFAULT NULL COMMENT '客户端', `browser` varchar(20) DEFAULT NULL COMMENT '浏览器', `device` varchar(300) DEFAULT NULL COMMENT '设备', `page` text DEFAULT NULL COMMENT '浏览页面', `fp_url` text DEFAULT NULL COMMENT '跳转页面', `language` varchar(300) DEFAULT NULL COMMENT '语言', `user_agent` text DEFAULT NULL COMMENT 'User-Agent 完整值', `http_referer` text DEFAULT NULL COMMENT 'HTTP Referer 完整值', `accept_language_raw` text DEFAULT NULL COMMENT 'Accept-Language 完整值', `judge_timing` text DEFAULT NULL COMMENT '判定用时 JSON', `fp_hdata` text DEFAULT NULL COMMENT '指纹 hdata 解码 JSON', `add_time` timestamp NOT NULL DEFAULT current_timestamp() COMMENT '日志记录时间', PRIMARY KEY (`id`), KEY `IP` (`IP`), KEY `idx_visit_date` (`visit_date`), KEY `idx_result` (`result`), KEY `idx_domain_date` (`domain`,`visit_date`), KEY `idx_country` (`country`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;