fix(db): V88迁移脚本添加DO块处理不存在的表
This commit is contained in:
@@ -1,12 +1,15 @@
|
||||
-- V86: CDSS规则引擎升级 - 添加优先级/分类字段 + 规则执行历史
|
||||
-- V88: CDSS规则引擎升级 - 添加优先级/分类字段 + 规则执行历史
|
||||
|
||||
ALTER TABLE cdss_rule ADD COLUMN IF NOT EXISTS priority INT NOT NULL DEFAULT 0;
|
||||
ALTER TABLE cdss_rule ADD COLUMN IF NOT EXISTS category VARCHAR(64);
|
||||
-- 为cdss_rule表添加字段(仅当表存在时)
|
||||
DO $$ BEGIN
|
||||
ALTER TABLE cdss_rule ADD COLUMN IF NOT EXISTS priority INT NOT NULL DEFAULT 0;
|
||||
ALTER TABLE cdss_rule ADD COLUMN IF NOT EXISTS category VARCHAR(64);
|
||||
EXCEPTION WHEN undefined_table THEN
|
||||
RAISE NOTICE 'cdss_rule table does not exist, skipping alter';
|
||||
END $$;
|
||||
|
||||
COMMENT ON COLUMN cdss_rule.priority IS '规则优先级(0普通 1紧急 2最高)';
|
||||
COMMENT ON COLUMN cdss_rule.category IS '规则分类';
|
||||
|
||||
CREATE TABLE cdss_rule_execution (
|
||||
-- 创建规则执行历史表
|
||||
CREATE TABLE IF NOT EXISTS cdss_rule_execution (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
rule_id BIGINT NOT NULL,
|
||||
rule_code VARCHAR(64) NOT NULL,
|
||||
@@ -22,18 +25,8 @@ CREATE TABLE cdss_rule_execution (
|
||||
delete_flag CHAR(1) DEFAULT '0'
|
||||
);
|
||||
|
||||
COMMENT ON TABLE cdss_rule_execution IS 'CDSS规则执行历史';
|
||||
COMMENT ON COLUMN cdss_rule_execution.id IS '执行记录ID';
|
||||
COMMENT ON COLUMN cdss_rule_execution.rule_id IS '规则ID';
|
||||
COMMENT ON COLUMN cdss_rule_execution.rule_code IS '规则编码';
|
||||
COMMENT ON COLUMN cdss_rule_execution.encounter_id IS '就诊ID';
|
||||
COMMENT ON COLUMN cdss_rule_execution.patient_id IS '患者ID';
|
||||
COMMENT ON COLUMN cdss_rule_execution.matched IS '是否命中';
|
||||
COMMENT ON COLUMN cdss_rule_execution.execution_time IS '执行时间';
|
||||
COMMENT ON COLUMN cdss_rule_execution.execution_result IS '执行结果';
|
||||
COMMENT ON COLUMN cdss_rule_execution.duration_ms IS '执行耗时(毫秒)';
|
||||
|
||||
CREATE INDEX idx_cdss_exec_rule ON cdss_rule_execution(rule_id);
|
||||
CREATE INDEX idx_cdss_exec_encounter ON cdss_rule_execution(encounter_id);
|
||||
CREATE INDEX idx_cdss_exec_patient ON cdss_rule_execution(patient_id);
|
||||
CREATE INDEX idx_cdss_exec_time ON cdss_rule_execution(execution_time);
|
||||
-- 创建索引
|
||||
CREATE INDEX IF NOT EXISTS idx_cdss_exec_rule ON cdss_rule_execution(rule_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_cdss_exec_encounter ON cdss_rule_execution(encounter_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_cdss_exec_patient ON cdss_rule_execution(patient_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_cdss_exec_time ON cdss_rule_execution(execution_time);
|
||||
|
||||
Reference in New Issue
Block a user