pbl_compiler/sql/pbl_compiler.sql
2026-09-18 18:24:31 +08:00

79 lines
5.2 KiB
SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- pbl_compiler 表 DDL自动生成与 apps/pbls/scripts/ddl/pbls_tables.sql 同源)
CREATE TABLE IF NOT EXISTS `pbl_compiler_version` (
`tenant_id` VARCHAR(32) NOT NULL COMMENT ID(),
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT ,
`code` VARCHAR(64) NOT NULL COMMENT "版本编码",
`semver` VARCHAR(64) NOT NULL COMMENT "语义化版本",
`rules_hash` VARCHAR(32) NOT NULL COMMENT "规则集SHA256前缀",
`entrypoint` VARCHAR(64) NOT NULL COMMENT "入口函数",
`enabled` TINYINT(1) NOT NULL DEFAULT 0 COMMENT "启用",
`notes` TEXT NULL COMMENT "说明",
`created_at` DATETIME NOT NULL DEFAULT '1970-01-01 00:00:00' COMMENT "创建时间(应用层写入)",
`updated_at` DATETIME NOT NULL DEFAULT '1970-01-01 00:00:00' COMMENT "更新时间(应用层写入)",
PRIMARY KEY (`id`),
UNIQUE KEY `uk_cv_code` (`tenant_id`, `code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT="编译器版本29.6 确定性)";
CREATE TABLE IF NOT EXISTS `pbl_game_definition` (
`tenant_id` VARCHAR(32) NOT NULL COMMENT ID(),
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT ,
`blueprint_id` BIGINT UNSIGNED NOT NULL COMMENT "来源蓝图",
`blueprint_version_no` INT NOT NULL DEFAULT 0 COMMENT "蓝图版本",
`compiler_version_id` BIGINT UNSIGNED NOT NULL COMMENT "编译版本",
`content_fingerprint` VARCHAR(64) NOT NULL COMMENT "SHA-256 指纹",
`definition_json` LONGTEXT NULL COMMENT "Game Definition 正文",
`world_id` BIGINT UNSIGNED NOT NULL COMMENT "落库 world",
`scene_id` BIGINT UNSIGNED NOT NULL COMMENT "落库 scene",
`entity_count` INT NOT NULL DEFAULT 0 COMMENT "实体数",
`event_count` INT NOT NULL DEFAULT 0 COMMENT "事件数",
`quality_state` VARCHAR(64) NOT NULL COMMENT "编译时质量状态",
`duration_ms` INT NOT NULL DEFAULT 0 COMMENT "耗时",
`created_at` DATETIME NOT NULL DEFAULT '1970-01-01 00:00:00' COMMENT "创建时间(应用层写入)",
`updated_at` DATETIME NOT NULL DEFAULT '1970-01-01 00:00:00' COMMENT "更新时间(应用层写入)",
PRIMARY KEY (`id`),
UNIQUE KEY `uk_gd_fp` (`tenant_id`, `content_fingerprint`),
KEY `idx_gd_bp` (`tenant_id`, `blueprint_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT="Game Definition第9章 schema + 指纹)";
CREATE TABLE IF NOT EXISTS `pbl_capability_registry` (
`tenant_id` VARCHAR(32) NOT NULL COMMENT ID(),
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT ,
`capability_key` VARCHAR(64) NOT NULL COMMENT "能力键",
`category` VARCHAR(64) NOT NULL COMMENT "分类",
`args_schema_json` LONGTEXT NULL COMMENT "参数JSON Schema",
`permission_required` VARCHAR(64) NOT NULL COMMENT "所需权限",
`is_enabled` TINYINT(1) NOT NULL DEFAULT 0 COMMENT "启用",
`version_no` INT NOT NULL DEFAULT 0 COMMENT "版本",
`description` TEXT NULL COMMENT "说明",
`created_at` DATETIME NOT NULL DEFAULT '1970-01-01 00:00:00' COMMENT "创建时间(应用层写入)",
`updated_at` DATETIME NOT NULL DEFAULT '1970-01-01 00:00:00' COMMENT "更新时间(应用层写入)",
PRIMARY KEY (`id`),
UNIQUE KEY `uk_cap_key` (`tenant_id`, `capability_key`, `version_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT="Capability Registry第11章缺口补齐";
CREATE TABLE IF NOT EXISTS `pbl_compile_task` (
`tenant_id` VARCHAR(64) NOT NULL COMMENT ID(),
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT ,
`task_no` VARCHAR(64) NOT NULL COMMENT "任务流水号(确定性派生 CT+blueprint_id+version+seq)",
`blueprint_id` BIGINT UNSIGNED NOT NULL COMMENT "蓝图ID",
`blueprint_version` INT NOT NULL DEFAULT 0 COMMENT "蓝图版本(须已审批)",
`compiler_version` VARCHAR(32) NOT NULL COMMENT "编译器版本号",
`ruleset_version` VARCHAR(32) NOT NULL COMMENT "规则集版本",
`status` VARCHAR(32) NOT NULL DEFAULT 'pending' COMMENT "appcodes:pbl_compile_status(pending/running/success/failed)",
`approval_id` BIGINT UNSIGNED NULL COMMENT "关联审批记录(未审批拒绝 F-CP-01)",
`game_def_id` BIGINT UNSIGNED NULL COMMENT "产出的 Game Definition ID(success 回填)",
`content_fingerprint` VARCHAR(64) NULL COMMENT "产物 SHA-256 指纹(success 回填,US-11 比对锚点)",
`error_code` VARCHAR(64) NULL COMMENT "失败错误码(PBL_E_*)",
`error_msg` VARCHAR(2048) NULL COMMENT "失败原因(fail-closed 可追溯)",
`triggered_by` VARCHAR(64) NULL COMMENT "触发人(审计)",
`duration_ms` INT NOT NULL DEFAULT 0 COMMENT "耗时(易变,不参与指纹)",
`started_at` DATETIME NULL COMMENT "开始时间",
`finished_at` DATETIME NULL COMMENT "结束时间",
`created_at` DATETIME NOT NULL DEFAULT '1970-01-01 00:00:00' COMMENT "创建时间(应用层写入)",
`updated_at` DATETIME NOT NULL DEFAULT '1970-01-01 00:00:00' COMMENT "更新时间(应用层写入)",
PRIMARY KEY (`id`),
UNIQUE KEY `uk_ct_task_no` (`tenant_id`, `task_no`),
KEY `idx_ct_blueprint` (`tenant_id`, `blueprint_id`, `blueprint_version`),
KEY `idx_ct_status` (`tenant_id`, `status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT="编译任务approval_id 门禁F-CP-01/US-10";