From 6ea777d584e70a8480a3eebff66b640e4a4bed7b Mon Sep 17 00:00:00 2001
From: gssong <1742057357@qq.com>
Date: 星期一, 08 四月 2024 21:32:27 +0800
Subject: [PATCH] Merge branch 'dev' of https://gitee.com/dromara/RuoYi-Vue-Plus into dev

---
 script/sql/postgres/easy_retry_postgre.sql |  805 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 805 insertions(+), 0 deletions(-)

diff --git a/script/sql/postgres/easy_retry_postgre.sql b/script/sql/postgres/easy_retry_postgre.sql
new file mode 100644
index 0000000..62801e9
--- /dev/null
+++ b/script/sql/postgres/easy_retry_postgre.sql
@@ -0,0 +1,805 @@
+-- PostgreSQL DDL
+
+CREATE TABLE er_namespace
+(
+    id          BIGSERIAL PRIMARY KEY,
+    name        VARCHAR(64)  NOT NULL,
+    unique_id   VARCHAR(64)  NOT NULL,
+    description VARCHAR(256) NOT NULL DEFAULT '',
+    create_dt   TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    update_dt   TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    deleted     SMALLINT     NOT NULL DEFAULT 0
+);
+
+CREATE UNIQUE INDEX uk_namespace_unique_id ON er_namespace (unique_id);
+
+COMMENT ON COLUMN er_namespace.id IS '涓婚敭';
+COMMENT ON COLUMN er_namespace.name IS '鍚嶇О';
+COMMENT ON COLUMN er_namespace.unique_id IS '鍞竴id';
+COMMENT ON COLUMN er_namespace.description IS '鎻忚堪';
+COMMENT ON COLUMN er_namespace.create_dt IS '鍒涘缓鏃堕棿';
+COMMENT ON COLUMN er_namespace.update_dt IS '淇敼鏃堕棿';
+COMMENT ON COLUMN er_namespace.deleted IS '閫昏緫鍒犻櫎 1銆佸垹闄�';
+COMMENT ON TABLE er_namespace IS '鍛藉悕绌洪棿';
+
+INSERT INTO er_namespace VALUES (1, 'Development', 'dev', '', now(), now(), 0);
+INSERT INTO er_namespace VALUES (2, 'Production', 'prod', '', now(), now(), 0);
+
+CREATE TABLE er_group_config
+(
+    id                BIGSERIAL PRIMARY KEY,
+    namespace_id      VARCHAR(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
+    group_name        VARCHAR(64) NOT NULL,
+    description       VARCHAR(256)         DEFAULT '',
+    token             VARCHAR(64)          DEFAULT 'ER_cKqBTPzCsWA3VyuCfFoccmuIEGXjr5KT',
+    group_status      SMALLINT    NOT NULL DEFAULT 0,
+    version           INT         NOT NULL,
+    group_partition   INT         NOT NULL,
+    id_generator_mode SMALLINT    NOT NULL DEFAULT 1,
+    init_scene        SMALLINT    NOT NULL DEFAULT 0,
+    bucket_index      INT         NOT NULL DEFAULT 0,
+    create_dt         TIMESTAMP   NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    update_dt         TIMESTAMP   NOT NULL DEFAULT CURRENT_TIMESTAMP
+);
+
+CREATE UNIQUE INDEX uk_namespace_id_group_name_group_config ON er_group_config (namespace_id, group_name);
+
+COMMENT ON COLUMN er_group_config.id IS '涓婚敭';
+COMMENT ON COLUMN er_group_config.namespace_id IS '鍛藉悕绌洪棿';
+COMMENT ON COLUMN er_group_config.group_name IS '缁勫悕绉�';
+COMMENT ON COLUMN er_group_config.description IS '缁勬弿杩�';
+COMMENT ON COLUMN er_group_config.token IS 'token';
+COMMENT ON COLUMN er_group_config.group_status IS '缁勭姸鎬� 0銆佹湭鍚敤 1銆佸惎鐢�';
+COMMENT ON COLUMN er_group_config.version IS '鐗堟湰鍙�';
+COMMENT ON COLUMN er_group_config.group_partition IS '鍒嗗尯';
+COMMENT ON COLUMN er_group_config.id_generator_mode IS '鍞竴id鐢熸垚妯″紡 榛樿鍙锋妯″紡';
+COMMENT ON COLUMN er_group_config.init_scene IS '鏄惁鍒濆鍖栧満鏅� 0:鍚� 1:鏄�';
+COMMENT ON COLUMN er_group_config.bucket_index IS 'bucket';
+COMMENT ON COLUMN er_group_config.create_dt IS '鍒涘缓鏃堕棿';
+COMMENT ON COLUMN er_group_config.update_dt IS '淇敼鏃堕棿';
+COMMENT ON TABLE er_group_config IS '缁勯厤缃�';
+
+INSERT INTO er_group_config VALUES (1, 'dev', 'ruoyi_group', '', 'ER_cKqBTPzCsWA3VyuCfFoccmuIEGXjr5KT', 1, 1, 0, 1, 1, 4, now(), now());
+
+CREATE TABLE er_notify_config
+(
+    id                     BIGSERIAL PRIMARY KEY,
+    namespace_id           VARCHAR(64)  NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
+    group_name             VARCHAR(64)  NOT NULL,
+    scene_name             VARCHAR(64)  NOT NULL,
+    notify_status          SMALLINT     NOT NULL DEFAULT 0,
+    notify_type            SMALLINT     NOT NULL DEFAULT 0,
+    notify_attribute       VARCHAR(512) NOT NULL,
+    notify_threshold       INT          NOT NULL DEFAULT 0,
+    notify_scene           SMALLINT     NOT NULL DEFAULT 0,
+    rate_limiter_status    SMALLINT     NOT NULL DEFAULT 0,
+    rate_limiter_threshold INT          NOT NULL DEFAULT 0,
+    description            VARCHAR(256) NOT NULL DEFAULT '',
+    create_dt              TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    update_dt              TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP
+);
+
+CREATE INDEX idx_namespace_id_group_name_notify_config ON er_notify_config (namespace_id, group_name);
+
+COMMENT ON COLUMN er_notify_config.id IS '涓婚敭';
+COMMENT ON COLUMN er_notify_config.group_name IS '缁勫悕绉�';
+COMMENT ON COLUMN er_notify_config.namespace_id IS '鍛藉悕绌洪棿id';
+COMMENT ON COLUMN er_notify_config.scene_name IS '鍦烘櫙鍚嶇О';
+COMMENT ON COLUMN er_notify_config.notify_status IS '閫氱煡鐘舵�� 0銆佹湭鍚敤 1銆佸惎鐢�';
+COMMENT ON COLUMN er_notify_config.notify_type IS '閫氱煡绫诲瀷 1銆侀拤閽� 2銆侀偖浠� 3銆佷紒涓氬井淇�';
+COMMENT ON COLUMN er_notify_config.notify_attribute IS '閰嶇疆灞炴��';
+COMMENT ON COLUMN er_notify_config.notify_threshold IS '閫氱煡闃堝��';
+COMMENT ON COLUMN er_notify_config.notify_scene IS '閫氱煡鍦烘櫙';
+COMMENT ON COLUMN er_notify_config.rate_limiter_status IS '闄愭祦鐘舵�� 0銆佹湭鍚敤 1銆佸惎鐢�';
+COMMENT ON COLUMN er_notify_config.rate_limiter_threshold IS '姣忕闄愭祦闃堝��';
+COMMENT ON COLUMN er_notify_config.description IS '鎻忚堪';
+COMMENT ON COLUMN er_notify_config.create_dt IS '鍒涘缓鏃堕棿';
+COMMENT ON COLUMN er_notify_config.update_dt IS '淇敼鏃堕棿';
+COMMENT ON TABLE er_notify_config IS '閫氱煡閰嶇疆';
+
+
+CREATE TABLE er_retry_dead_letter_0
+(
+    id            BIGSERIAL PRIMARY KEY,
+    unique_id     VARCHAR(64)  NOT NULL,
+    namespace_id  VARCHAR(64)  NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
+    group_name    VARCHAR(64)  NOT NULL,
+    scene_name    VARCHAR(64)  NOT NULL,
+    idempotent_id VARCHAR(64)  NOT NULL,
+    biz_no        VARCHAR(64)  NOT NULL DEFAULT '',
+    executor_name VARCHAR(512) NOT NULL DEFAULT '',
+    args_str      TEXT         NOT NULL,
+    ext_attrs     TEXT         NOT NULL,
+    task_type     SMALLINT     NOT NULL DEFAULT 1,
+    create_dt     TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP
+);
+
+CREATE UNIQUE INDEX uk_namespace_id_group_name_unique_id_retry_dead_letter ON er_retry_dead_letter_0 (namespace_id, group_name, unique_id);
+CREATE INDEX idx_namespace_id_group_name_scene_name_retry_dead_letter ON er_retry_dead_letter_0 (namespace_id, group_name, scene_name);
+CREATE INDEX idx_idempotent_id_retry_dead_letter ON er_retry_dead_letter_0 (idempotent_id);
+CREATE INDEX idx_biz_no_retry_dead_letter ON er_retry_dead_letter_0 (biz_no);
+CREATE INDEX idx_create_dt_retry_dead_letter ON er_retry_dead_letter_0 (create_dt);
+
+COMMENT ON COLUMN er_retry_dead_letter_0.id IS '涓婚敭';
+COMMENT ON COLUMN er_retry_dead_letter_0.unique_id IS '鍚岀粍涓媔d鍞竴';
+COMMENT ON COLUMN er_retry_dead_letter_0.namespace_id IS '鍛藉悕绌洪棿id';
+COMMENT ON COLUMN er_retry_dead_letter_0.group_name IS '缁勫悕绉�';
+COMMENT ON COLUMN er_retry_dead_letter_0.scene_name IS '鍦烘櫙鍚嶇О';
+COMMENT ON COLUMN er_retry_dead_letter_0.idempotent_id IS '骞傜瓑id';
+COMMENT ON COLUMN er_retry_dead_letter_0.biz_no IS '涓氬姟缂栧彿';
+COMMENT ON COLUMN er_retry_dead_letter_0.executor_name IS '鎵ц鍣ㄥ悕绉�';
+COMMENT ON COLUMN er_retry_dead_letter_0.args_str IS '鎵ц鏂规硶鍙傛暟';
+COMMENT ON COLUMN er_retry_dead_letter_0.ext_attrs IS '鎵╁睍瀛楁';
+COMMENT ON COLUMN er_retry_dead_letter_0.task_type IS '浠诲姟绫诲瀷 1銆侀噸璇曟暟鎹� 2銆佸洖璋冩暟鎹�';
+COMMENT ON COLUMN er_retry_dead_letter_0.create_dt IS '鍒涘缓鏃堕棿';
+COMMENT ON TABLE er_retry_dead_letter_0 IS '姝讳俊闃熷垪琛�';
+
+CREATE TABLE er_retry_task_0
+(
+    id              BIGSERIAL PRIMARY KEY,
+    unique_id       VARCHAR(64)  NOT NULL,
+    namespace_id    VARCHAR(64)  NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
+    group_name      VARCHAR(64)  NOT NULL,
+    scene_name      VARCHAR(64)  NOT NULL,
+    idempotent_id   VARCHAR(64)  NOT NULL,
+    biz_no          VARCHAR(64)  NOT NULL DEFAULT '',
+    executor_name   VARCHAR(512) NOT NULL DEFAULT '',
+    args_str        TEXT         NOT NULL,
+    ext_attrs       TEXT         NOT NULL,
+    next_trigger_at TIMESTAMP    NOT NULL,
+    retry_count     INT          NOT NULL DEFAULT 0,
+    retry_status    SMALLINT     NOT NULL DEFAULT 0,
+    task_type       SMALLINT     NOT NULL DEFAULT 1,
+    create_dt       TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    update_dt       TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP
+);
+
+CREATE UNIQUE INDEX uk_name_unique_id_retry_task ON er_retry_task_0 (namespace_id, group_name, unique_id);
+CREATE INDEX idx_namespace_id_group_name_scene_name_retry_task ON er_retry_task_0 (namespace_id, group_name, scene_name);
+CREATE INDEX idx_namespace_id_group_name_retry_status_retry_task ON er_retry_task_0 (namespace_id, group_name, retry_status);
+CREATE INDEX idx_idempotent_id_retry_task ON er_retry_task_0 (idempotent_id);
+CREATE INDEX idx_biz_no_retry_task ON er_retry_task_0 (biz_no);
+CREATE INDEX idx_create_dt_retry_task ON er_retry_task_0 (create_dt);
+
+COMMENT ON COLUMN er_retry_task_0.id IS '涓婚敭';
+COMMENT ON COLUMN er_retry_task_0.unique_id IS '鍚岀粍涓媔d鍞竴';
+COMMENT ON COLUMN er_retry_task_0.namespace_id IS '鍛藉悕绌洪棿id';
+COMMENT ON COLUMN er_retry_task_0.group_name IS '缁勫悕绉�';
+COMMENT ON COLUMN er_retry_task_0.scene_name IS '鍦烘櫙鍚嶇О';
+COMMENT ON COLUMN er_retry_task_0.idempotent_id IS '骞傜瓑id';
+COMMENT ON COLUMN er_retry_task_0.biz_no IS '涓氬姟缂栧彿';
+COMMENT ON COLUMN er_retry_task_0.executor_name IS '鎵ц鍣ㄥ悕绉�';
+COMMENT ON COLUMN er_retry_task_0.args_str IS '鎵ц鏂规硶鍙傛暟';
+COMMENT ON COLUMN er_retry_task_0.ext_attrs IS '鎵╁睍瀛楁';
+COMMENT ON COLUMN er_retry_task_0.next_trigger_at IS '涓嬫瑙﹀彂鏃堕棿';
+COMMENT ON COLUMN er_retry_task_0.retry_count IS '閲嶈瘯娆℃暟';
+COMMENT ON COLUMN er_retry_task_0.retry_status IS '閲嶈瘯鐘舵�� 0銆侀噸璇曚腑 1銆佹垚鍔� 2銆佹渶澶ч噸璇曟鏁�';
+COMMENT ON COLUMN er_retry_task_0.task_type IS '浠诲姟绫诲瀷 1銆侀噸璇曟暟鎹� 2銆佸洖璋冩暟鎹�';
+COMMENT ON COLUMN er_retry_task_0.create_dt IS '鍒涘缓鏃堕棿';
+COMMENT ON COLUMN er_retry_task_0.update_dt IS '淇敼鏃堕棿';
+COMMENT ON TABLE er_retry_task_0 IS '浠诲姟琛�';
+
+CREATE TABLE er_retry_task_log
+(
+    id            BIGSERIAL PRIMARY KEY,
+    unique_id     VARCHAR(64)  NOT NULL,
+    namespace_id  VARCHAR(64)  NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
+    group_name    VARCHAR(64)  NOT NULL,
+    scene_name    VARCHAR(64)  NOT NULL,
+    idempotent_id VARCHAR(64)  NOT NULL,
+    biz_no        VARCHAR(64)  NOT NULL DEFAULT '',
+    executor_name VARCHAR(512) NOT NULL DEFAULT '',
+    args_str      TEXT         NOT NULL,
+    ext_attrs     TEXT         NOT NULL,
+    retry_status  SMALLINT     NOT NULL DEFAULT 0,
+    task_type     SMALLINT     NOT NULL DEFAULT 1,
+    create_dt     TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    update_dt     TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP
+
+);
+
+CREATE INDEX idx_group_name_scene_name_retry_task_log ON er_retry_task_log (namespace_id, group_name, scene_name);
+CREATE INDEX idx_retry_status_retry_task_log ON er_retry_task_log (retry_status);
+CREATE INDEX idx_idempotent_id_retry_task_log ON er_retry_task_log (idempotent_id);
+CREATE INDEX idx_unique_id ON er_retry_task_log (namespace_id, group_name, unique_id);
+CREATE INDEX idx_biz_no_retry_task_log ON er_retry_task_log (biz_no);
+CREATE INDEX idx_create_dt_retry_task_log ON er_retry_task_log (create_dt);
+
+COMMENT ON COLUMN er_retry_task_log.id IS '涓婚敭';
+COMMENT ON COLUMN er_retry_task_log.namespace_id IS '鍛藉悕绌洪棿id';
+COMMENT ON COLUMN er_retry_task_log.unique_id IS '鍚岀粍涓媔d鍞竴';
+COMMENT ON COLUMN er_retry_task_log.group_name IS '缁勫悕绉�';
+COMMENT ON COLUMN er_retry_task_log.scene_name IS '鍦烘櫙鍚嶇О';
+COMMENT ON COLUMN er_retry_task_log.idempotent_id IS '骞傜瓑id';
+COMMENT ON COLUMN er_retry_task_log.biz_no IS '涓氬姟缂栧彿';
+COMMENT ON COLUMN er_retry_task_log.executor_name IS '鎵ц鍣ㄥ悕绉�';
+COMMENT ON COLUMN er_retry_task_log.args_str IS '鎵ц鏂规硶鍙傛暟';
+COMMENT ON COLUMN er_retry_task_log.ext_attrs IS '鎵╁睍瀛楁';
+COMMENT ON COLUMN er_retry_task_log.retry_status IS '閲嶈瘯鐘舵�� 0銆侀噸璇曚腑 1銆佹垚鍔� 2銆佹渶澶ф鏁�';
+COMMENT ON COLUMN er_retry_task_log.task_type IS '浠诲姟绫诲瀷 1銆侀噸璇曟暟鎹� 2銆佸洖璋冩暟鎹�';
+COMMENT ON COLUMN er_retry_task_log.create_dt IS '鍒涘缓鏃堕棿';
+COMMENT ON COLUMN er_retry_task_log.update_dt IS '淇敼鏃堕棿';
+COMMENT ON TABLE er_retry_task_log IS '浠诲姟鏃ュ織鍩虹淇℃伅琛�';
+
+CREATE TABLE er_retry_task_log_message
+(
+    id           BIGSERIAL PRIMARY KEY,
+    namespace_id VARCHAR(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
+    group_name   VARCHAR(64) NOT NULL,
+    unique_id    VARCHAR(64) NOT NULL,
+    create_dt    TIMESTAMP   NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    message      TEXT        NOT NULL,
+    log_num      INT         NOT NULL DEFAULT 1,
+    real_time    BIGINT      NOT NULL DEFAULT 0
+);
+
+CREATE INDEX idx_namespace_id_group_name_unique_id ON er_retry_task_log_message (namespace_id, group_name, unique_id);
+CREATE INDEX idx_create_dt ON er_retry_task_log_message (create_dt);
+COMMENT ON COLUMN er_retry_task_log_message.id IS '涓婚敭';
+COMMENT ON COLUMN er_retry_task_log_message.namespace_id IS '鍛藉悕绌洪棿';
+COMMENT ON COLUMN er_retry_task_log_message.group_name IS '缁勫悕绉�';
+COMMENT ON COLUMN er_retry_task_log_message.unique_id IS '鍚岀粍涓媔d鍞竴';
+COMMENT ON COLUMN er_retry_task_log_message.create_dt IS '鍒涘缓鏃堕棿';
+COMMENT ON COLUMN er_retry_task_log_message.message IS '寮傚父淇℃伅';
+COMMENT ON COLUMN er_retry_task_log_message.log_num IS '鏃ュ織鏉℃暟';
+COMMENT ON COLUMN er_retry_task_log_message.real_time IS '瀹為檯鏃堕棿';
+COMMENT ON TABLE er_retry_task_log_message IS '浠诲姟璋冨害鏃ュ織淇℃伅璁板綍琛�';
+
+CREATE TABLE er_scene_config
+(
+    id               BIGSERIAL PRIMARY KEY,
+    namespace_id     VARCHAR(64)  NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
+    scene_name       VARCHAR(64)  NOT NULL,
+    group_name       VARCHAR(64)  NOT NULL,
+    scene_status     SMALLINT     NOT NULL DEFAULT 0,
+    max_retry_count  INT          NOT NULL DEFAULT 5,
+    back_off         SMALLINT     NOT NULL DEFAULT 1,
+    trigger_interval VARCHAR(16)  NOT NULL DEFAULT '',
+    deadline_request BIGINT       NOT NULL DEFAULT 60000,
+    route_key        SMALLINT     NOT NULL DEFAULT 4,
+    executor_timeout INT          NOT NULL DEFAULT 5,
+    description      VARCHAR(256) NOT NULL DEFAULT '',
+    create_dt        TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    update_dt        TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP
+);
+
+CREATE UNIQUE INDEX uk_namespace_id_group_name_scene_name ON er_scene_config (namespace_id, group_name, scene_name);
+COMMENT ON COLUMN er_scene_config.id IS '涓婚敭';
+COMMENT ON COLUMN er_scene_config.namespace_id IS '鍛藉悕绌洪棿id';
+COMMENT ON COLUMN er_scene_config.scene_name IS '鍦烘櫙鍚嶇О';
+COMMENT ON COLUMN er_scene_config.group_name IS '缁勫悕绉�';
+COMMENT ON COLUMN er_scene_config.scene_status IS '缁勭姸鎬� 0銆佹湭鍚敤 1銆佸惎鐢�';
+COMMENT ON COLUMN er_scene_config.max_retry_count IS '鏈�澶ч噸璇曟鏁�';
+COMMENT ON COLUMN er_scene_config.back_off IS '1銆侀粯璁ょ瓑绾� 2銆佸浐瀹氶棿闅旀椂闂� 3銆丆RON 琛ㄨ揪寮�';
+COMMENT ON COLUMN er_scene_config.trigger_interval IS '闂撮殧鏃堕暱';
+COMMENT ON COLUMN er_scene_config.deadline_request IS 'Deadline Request 璋冪敤閾捐秴鏃� 鍗曚綅姣';
+COMMENT ON COLUMN er_scene_config.description IS '鎻忚堪';
+COMMENT ON COLUMN er_scene_config.route_key IS '璺敱绛栫暐';
+COMMENT ON COLUMN er_scene_config.executor_timeout IS '瓒呮椂鏃堕棿';
+COMMENT ON COLUMN er_scene_config.create_dt IS '鍒涘缓鏃堕棿';
+COMMENT ON COLUMN er_scene_config.update_dt IS '淇敼鏃堕棿';
+COMMENT ON TABLE er_scene_config IS '鍦烘櫙閰嶇疆';
+
+CREATE TABLE er_server_node
+(
+    id           BIGSERIAL PRIMARY KEY,
+    namespace_id VARCHAR(64)  NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
+    group_name   VARCHAR(64)  NOT NULL,
+    host_id      VARCHAR(64)  NOT NULL,
+    host_ip      VARCHAR(64)  NOT NULL,
+    context_path VARCHAR(256) NOT NULL DEFAULT '/',
+    host_port    INT          NOT NULL,
+    expire_at    TIMESTAMP    NOT NULL,
+    node_type    SMALLINT     NOT NULL,
+    ext_attrs    VARCHAR(256)          DEFAULT '',
+    create_dt    TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    update_dt    TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP
+);
+
+CREATE UNIQUE INDEX uk_host_id_host_ip ON er_server_node (host_id, host_ip);
+CREATE INDEX idx_expire_at_node_type ON er_server_node (expire_at, node_type);
+CREATE INDEX idx_namespace_id_group_name_server_node ON er_server_node (namespace_id, group_name);
+
+COMMENT ON COLUMN er_server_node.id IS '涓婚敭';
+COMMENT ON COLUMN er_server_node.group_name IS '缁勫悕绉�';
+COMMENT ON COLUMN er_server_node.namespace_id IS '鍛藉悕绌洪棿id';
+COMMENT ON COLUMN er_server_node.host_id IS '涓绘満id';
+COMMENT ON COLUMN er_server_node.host_ip IS '鏈哄櫒ip';
+COMMENT ON COLUMN er_server_node.context_path IS '瀹㈡埛绔笂涓嬫枃璺緞 server.servlet.context-path';
+COMMENT ON COLUMN er_server_node.host_port IS '鏈哄櫒绔彛';
+COMMENT ON COLUMN er_server_node.expire_at IS '杩囨湡鏃堕棿';
+COMMENT ON COLUMN er_server_node.node_type IS '鑺傜偣绫诲瀷 1銆佸鎴风 2銆佹槸鏈嶅姟绔�';
+COMMENT ON COLUMN er_server_node.ext_attrs IS '鎵╁睍瀛楁';
+COMMENT ON COLUMN er_server_node.create_dt IS '鍒涘缓鏃堕棿';
+COMMENT ON COLUMN er_server_node.update_dt IS '淇敼鏃堕棿';
+COMMENT ON TABLE er_server_node IS '鏈嶅姟鍣ㄨ妭鐐�';
+
+CREATE TABLE er_distributed_lock
+(
+    id         BIGSERIAL PRIMARY KEY,
+    name       VARCHAR(64)  NOT NULL,
+    lock_until TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    locked_at  TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    locked_by  VARCHAR(255) NOT NULL,
+    create_dt  TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    update_dt  TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP
+);
+
+ALTER TABLE er_distributed_lock
+    ADD CONSTRAINT uk_name UNIQUE (name);
+
+COMMENT ON COLUMN er_distributed_lock.id IS '涓婚敭';
+COMMENT ON COLUMN er_distributed_lock.name IS '閿佸悕绉�';
+COMMENT ON COLUMN er_distributed_lock.lock_until IS '閿佸畾鏃堕暱';
+COMMENT ON COLUMN er_distributed_lock.locked_at IS '閿佸畾鏃堕棿';
+COMMENT ON COLUMN er_distributed_lock.locked_by IS '閿佸畾鑰�';
+COMMENT ON COLUMN er_distributed_lock.create_dt IS '鍒涘缓鏃堕棿';
+COMMENT ON COLUMN er_distributed_lock.update_dt IS '淇敼鏃堕棿';
+COMMENT ON TABLE er_distributed_lock IS '閿佸畾琛�';
+
+
+CREATE TABLE er_system_user
+(
+    id        BIGSERIAL PRIMARY KEY,
+    username  VARCHAR(64)  NOT NULL,
+    password  VARCHAR(128) NOT NULL,
+    role      SMALLINT     NOT NULL DEFAULT 0,
+    create_dt TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    update_dt TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP
+);
+
+CREATE UNIQUE INDEX uk_username ON er_system_user (username);
+COMMENT ON COLUMN er_system_user.id IS '涓婚敭';
+COMMENT ON COLUMN er_system_user.username IS '璐﹀彿';
+COMMENT ON COLUMN er_system_user.password IS '瀵嗙爜';
+COMMENT ON COLUMN er_system_user.role IS '瑙掕壊锛�1-鏅�氱敤鎴枫��2-绠$悊鍛�';
+COMMENT ON COLUMN er_system_user.create_dt IS '鍒涘缓鏃堕棿';
+COMMENT ON COLUMN er_system_user.update_dt IS '淇敼鏃堕棿';
+COMMENT ON TABLE er_system_user IS '绯荤粺鐢ㄦ埛琛�';
+
+-- pwd: admin
+INSERT INTO er_system_user VALUES (1, 'admin', '465c194afb65670f38322df087f0a9bb225cc257e43eb4ac5a0c98ef5b3173ac', 2, now(), now());
+
+CREATE TABLE er_system_user_permission
+(
+    id             BIGSERIAL PRIMARY KEY,
+    namespace_id   VARCHAR(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
+    group_name     VARCHAR(64) NOT NULL,
+    system_user_id BIGINT      NOT NULL,
+    create_dt      TIMESTAMP   NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    update_dt      TIMESTAMP   NOT NULL DEFAULT CURRENT_TIMESTAMP
+);
+
+CREATE UNIQUE INDEX uk_namespace_id_group_name_system_user_id ON er_system_user_permission (namespace_id, group_name, system_user_id);
+COMMENT ON COLUMN er_system_user_permission.id IS '涓婚敭';
+COMMENT ON COLUMN er_system_user_permission.namespace_id IS '鍛藉悕绌洪棿id';
+COMMENT ON COLUMN er_system_user_permission.group_name IS '缁勫悕绉�';
+COMMENT ON COLUMN er_system_user_permission.system_user_id IS '绯荤粺鐢ㄦ埛id';
+COMMENT ON COLUMN er_system_user_permission.create_dt IS '鍒涘缓鏃堕棿';
+COMMENT ON COLUMN er_system_user_permission.update_dt IS '淇敼鏃堕棿';
+COMMENT ON TABLE er_system_user_permission IS '绯荤粺鐢ㄦ埛鏉冮檺琛�';
+
+
+CREATE TABLE er_sequence_alloc
+(
+    id           BIGSERIAL PRIMARY KEY,
+    namespace_id VARCHAR(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
+    group_name   VARCHAR(64) NOT NULL DEFAULT '',
+    max_id       BIGINT      NOT NULL DEFAULT 1,
+    step         INT         NOT NULL DEFAULT 100,
+    update_dt    TIMESTAMP   NOT NULL DEFAULT CURRENT_TIMESTAMP
+);
+
+CREATE UNIQUE INDEX uk_namespace_id_group_name ON er_sequence_alloc (namespace_id, group_name);
+
+COMMENT ON COLUMN er_sequence_alloc.id IS '涓婚敭';
+COMMENT ON COLUMN er_sequence_alloc.namespace_id IS '鍛藉悕绌洪棿id';
+COMMENT ON COLUMN er_sequence_alloc.group_name IS '缁勫悕绉�';
+COMMENT ON COLUMN er_sequence_alloc.max_id IS '鏈�澶d';
+COMMENT ON COLUMN er_sequence_alloc.step IS '姝ラ暱';
+COMMENT ON COLUMN er_sequence_alloc.update_dt IS '鏇存柊鏃堕棿';
+COMMENT ON TABLE er_sequence_alloc IS '鍙锋妯″紡搴忓彿ID鍒嗛厤琛�';
+
+-- 鍒嗗竷寮忚皟搴DL
+CREATE TABLE er_job
+(
+    id               BIGSERIAL PRIMARY KEY,
+    namespace_id     VARCHAR(64)  NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
+    group_name       VARCHAR(64)  NOT NULL,
+    job_name         VARCHAR(64)  NOT NULL,
+    args_str         TEXT         NOT NULL DEFAULT '',
+    args_type        SMALLINT     NOT NULL DEFAULT 1,
+    next_trigger_at  BIGINT       NOT NULL,
+    job_status       SMALLINT     NOT NULL DEFAULT 1,
+    task_type        SMALLINT     NOT NULL DEFAULT 1,
+    route_key        SMALLINT     NOT NULL DEFAULT 4,
+    executor_type    SMALLINT     NOT NULL DEFAULT 1,
+    executor_info    VARCHAR(255)          DEFAULT NULL,
+    trigger_type     SMALLINT     NOT NULL,
+    trigger_interval VARCHAR(255) NOT NULL,
+    block_strategy   SMALLINT     NOT NULL DEFAULT 1,
+    executor_timeout INT          NOT NULL DEFAULT 0,
+    max_retry_times  INT          NOT NULL DEFAULT 0,
+    parallel_num     INT          NOT NULL DEFAULT 1,
+    retry_interval   INT          NOT NULL DEFAULT 0,
+    bucket_index     INT          NOT NULL DEFAULT 0,
+    resident         SMALLINT     NOT NULL DEFAULT 0,
+    description      VARCHAR(256) NOT NULL DEFAULT '',
+    ext_attrs        VARCHAR(256)          DEFAULT NULL,
+    create_dt        TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    update_dt        TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    deleted          SMALLINT     NOT NULL DEFAULT 0
+);
+
+CREATE INDEX idx_namespace_id_group_name_job ON er_job (namespace_id, group_name);
+CREATE INDEX idx_job_status_bucket_index_job ON er_job (job_status, bucket_index);
+CREATE INDEX idx_create_dt_job ON er_job (create_dt);
+
+COMMENT ON COLUMN er_job.id IS '涓婚敭';
+COMMENT ON COLUMN er_job.namespace_id IS '鍛藉悕绌洪棿id';
+COMMENT ON COLUMN er_job.group_name IS '缁勫悕绉�';
+COMMENT ON COLUMN er_job.job_name IS '鍚嶇О';
+COMMENT ON COLUMN er_job.args_str IS '鎵ц鏂规硶鍙傛暟';
+COMMENT ON COLUMN er_job.args_type IS '鍙傛暟绫诲瀷';
+COMMENT ON COLUMN er_job.next_trigger_at IS '涓嬫瑙﹀彂鏃堕棿';
+COMMENT ON COLUMN er_job.job_status IS '閲嶈瘯鐘舵�� 0銆佸叧闂��1銆佸紑鍚�';
+COMMENT ON COLUMN er_job.task_type IS '浠诲姟绫诲瀷 1銆侀泦缇� 2銆佸箍鎾� 3銆佸垏鐗�';
+COMMENT ON COLUMN er_job.route_key IS '璺敱绛栫暐';
+COMMENT ON COLUMN er_job.executor_type IS '鎵ц鍣ㄧ被鍨�';
+COMMENT ON COLUMN er_job.executor_info IS '鎵ц鍣ㄥ悕绉�';
+COMMENT ON COLUMN er_job.trigger_type IS '瑙﹀彂绫诲瀷 1.CRON 琛ㄨ揪寮� 2. 鍥哄畾鏃堕棿';
+COMMENT ON COLUMN er_job.trigger_interval IS '闂撮殧鏃堕暱';
+COMMENT ON COLUMN er_job.block_strategy IS '闃诲绛栫暐 1銆佷涪寮� 2銆佽鐩� 3銆佸苟琛�';
+COMMENT ON COLUMN er_job.executor_timeout IS '浠诲姟鎵ц瓒呮椂鏃堕棿锛屽崟浣嶇';
+COMMENT ON COLUMN er_job.max_retry_times IS '鏈�澶ч噸璇曟鏁�';
+COMMENT ON COLUMN er_job.parallel_num IS '骞惰鏁�';
+COMMENT ON COLUMN er_job.retry_interval IS '鏇存柊閲嶈瘯闂撮殧(s)';
+COMMENT ON COLUMN er_job.bucket_index IS 'bucket';
+COMMENT ON COLUMN er_job.resident IS '鏄惁鏄父椹讳换鍔�';
+COMMENT ON COLUMN er_job.description IS '鎻忚堪';
+COMMENT ON COLUMN er_job.ext_attrs IS '鎵╁睍瀛楁';
+COMMENT ON COLUMN er_job.create_dt IS '鍒涘缓鏃堕棿';
+COMMENT ON COLUMN er_job.deleted IS '閫昏緫鍒犻櫎 1銆佸垹闄�';
+COMMENT ON COLUMN er_job.update_dt IS '鏇存柊鏃堕棿';
+COMMENT ON TABLE er_job IS '浠诲姟淇℃伅';
+
+CREATE TABLE er_job_log_message
+(
+    id            BIGSERIAL PRIMARY KEY,
+    namespace_id  VARCHAR(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
+    group_name    VARCHAR(64) NOT NULL,
+    job_id        BIGINT      NOT NULL,
+    task_batch_id BIGINT      NOT NULL,
+    task_id       BIGINT      NOT NULL,
+    message       TEXT        NOT NULL,
+    log_num       INT         NOT NULL DEFAULT 1,
+    real_time     BIGINT      NOT NULL DEFAULT 0,
+    ext_attrs     VARCHAR(256)         DEFAULT '',
+    create_dt     TIMESTAMP   NOT NULL DEFAULT CURRENT_TIMESTAMP
+);
+
+CREATE INDEX idx_namespace_id_group_name_to_job_log_message ON er_job_log_message (namespace_id, group_name);
+CREATE INDEX idx_task_batch_id_task_id_to_job_log_message ON er_job_log_message (task_batch_id, task_id);
+CREATE INDEX idx_create_dt_to_job_log_message ON er_job_log_message (create_dt);
+
+COMMENT ON COLUMN er_job_log_message.id IS '涓婚敭';
+COMMENT ON COLUMN er_job_log_message.namespace_id IS '鍛藉悕绌洪棿id';
+COMMENT ON COLUMN er_job_log_message.group_name IS '缁勫悕绉�';
+COMMENT ON COLUMN er_job_log_message.job_id IS '浠诲姟淇℃伅id';
+COMMENT ON COLUMN er_job_log_message.task_batch_id IS '浠诲姟鎵规id';
+COMMENT ON COLUMN er_job_log_message.task_id IS '璋冨害浠诲姟id';
+COMMENT ON COLUMN er_job_log_message.message IS '璋冨害淇℃伅';
+COMMENT ON COLUMN er_job_log_message.log_num IS '鏃ュ織搴忓彿';
+COMMENT ON COLUMN er_job_log_message.real_time IS '瀹為檯鏃堕棿';
+COMMENT ON COLUMN er_job_log_message.create_dt IS '鍒涘缓鏃堕棿';
+COMMENT ON COLUMN er_job_log_message.ext_attrs IS '鎵╁睍瀛楁';
+COMMENT ON TABLE er_job_log_message IS '璋冨害鏃ュ織';
+
+CREATE TABLE er_job_task
+(
+    id             BIGSERIAL PRIMARY KEY,
+    namespace_id   VARCHAR(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
+    group_name     VARCHAR(64) NOT NULL,
+    job_id         BIGINT      NOT NULL,
+    task_batch_id  BIGINT      NOT NULL,
+    parent_id      BIGINT      NOT NULL DEFAULT 0,
+    task_status    SMALLINT    NOT NULL DEFAULT 0,
+    retry_count    INT         NOT NULL DEFAULT 0,
+    client_info    VARCHAR(128)         DEFAULT NULL,
+    result_message TEXT        NOT NULL,
+    args_str       TEXT        NOT NULL,
+    args_type      SMALLINT    NOT NULL DEFAULT 1,
+    ext_attrs      VARCHAR(256)         DEFAULT '',
+    create_dt      TIMESTAMP   NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    update_dt      TIMESTAMP   NOT NULL DEFAULT CURRENT_TIMESTAMP
+);
+
+
+CREATE INDEX idx_namespace_id_group_name_to_job_task ON er_job_task (namespace_id, group_name);
+CREATE INDEX idx_task_batch_id_task_status_to_job_task ON er_job_task (task_batch_id, task_status);
+CREATE INDEX idx_create_dt_to_job_task ON er_job_task (create_dt);
+COMMENT ON COLUMN er_job_task.id IS '涓婚敭';
+COMMENT ON COLUMN er_job_task.namespace_id IS '鍛藉悕绌洪棿id';
+COMMENT ON COLUMN er_job_task.group_name IS '缁勫悕绉�';
+COMMENT ON COLUMN er_job_task.job_id IS '浠诲姟淇℃伅id';
+COMMENT ON COLUMN er_job_task.task_batch_id IS '浠诲姟鎵规id';
+COMMENT ON COLUMN er_job_task.parent_id IS '鐖舵墽琛屽櫒id';
+COMMENT ON COLUMN er_job_task.task_status IS '鎵ц鐨勭姸鎬� 0銆佸け璐� 1銆佹垚鍔�';
+COMMENT ON COLUMN er_job_task.retry_count IS '閲嶈瘯娆℃暟';
+COMMENT ON COLUMN er_job_task.client_info IS '瀹㈡埛绔湴鍧� clientId#ip:port';
+COMMENT ON COLUMN er_job_task.result_message IS '璋冨害淇℃伅';
+COMMENT ON COLUMN er_job_task.args_str IS '鎵ц鏂规硶鍙傛暟';
+COMMENT ON COLUMN er_job_task.args_type IS '鍙傛暟绫诲瀷';
+COMMENT ON COLUMN er_job_task.create_dt IS '鍒涘缓鏃堕棿';
+COMMENT ON COLUMN er_job_task.update_dt IS '鍒涘缓鏃堕棿';
+COMMENT ON COLUMN er_job_task.ext_attrs IS '鎵╁睍瀛楁';
+COMMENT ON TABLE er_job_task IS '浠诲姟瀹炰緥';
+
+CREATE TABLE er_job_task_batch
+(
+    id                      BIGSERIAL PRIMARY KEY,
+    namespace_id            VARCHAR(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
+    group_name              VARCHAR(64) NOT NULL,
+    job_id                  BIGINT      NOT NULL,
+    workflow_node_id        BIGINT      NOT NULL DEFAULT 0,
+    parent_workflow_node_id BIGINT      NOT NULL DEFAULT 0,
+    workflow_task_batch_id  BIGINT      NOT NULL DEFAULT 0,
+    parent_id               VARCHAR(64) NOT NULL DEFAULT '',
+    task_batch_status       SMALLINT    NOT NULL DEFAULT 0,
+    operation_reason        SMALLINT    NOT NULL DEFAULT 0,
+    execution_at            BIGINT      NOT NULL DEFAULT 0,
+    system_task_type        SMALLINT    NOT NULL DEFAULT 3,
+    ext_attrs               VARCHAR(256)         DEFAULT '',
+    deleted                 SMALLINT    NOT NULL DEFAULT 0,
+    create_dt               TIMESTAMP   NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    update_dt               TIMESTAMP   NOT NULL DEFAULT CURRENT_TIMESTAMP
+);
+
+CREATE INDEX idx_namespace_id_group_name_to_job_task_batch ON er_job_task_batch (namespace_id, group_name);
+CREATE INDEX idx_job_id_task_batch_status_to_job_task_batch ON er_job_task_batch (job_id, task_batch_status);
+CREATE INDEX idx_create_dt_to_job_task_batch ON er_job_task_batch (create_dt);
+CREATE INDEX idx_workflow_task_batch_id_workflow_node_id ON er_job_task_batch (workflow_task_batch_id, workflow_node_id);
+
+COMMENT ON COLUMN er_job_task_batch.id IS '涓婚敭';
+COMMENT ON COLUMN er_job_task_batch.namespace_id IS '鍛藉悕绌洪棿id';
+COMMENT ON COLUMN er_job_task_batch.group_name IS '缁勫悕绉�';
+COMMENT ON COLUMN er_job_task_batch.job_id IS '浠诲姟淇℃伅id';
+COMMENT ON COLUMN er_job_task_batch.task_batch_status IS '浠诲姟鎵规鐘舵�� 0銆佸け璐� 1銆佹垚鍔�';
+COMMENT ON COLUMN er_job_task_batch.operation_reason IS '鎿嶄綔鍘熷洜';
+COMMENT ON COLUMN er_job_task_batch.workflow_node_id IS '宸ヤ綔娴佽妭鐐筰d';
+COMMENT ON COLUMN er_job_task_batch.parent_workflow_node_id IS '鐖惰妭鐐�';
+COMMENT ON COLUMN er_job_task_batch.workflow_task_batch_id IS '浠诲姟鎵规id';
+COMMENT ON COLUMN er_job_task_batch.system_task_type IS '浠诲姟绫诲瀷 0銆佺郴缁熶换鍔� 1銆佷笟鍔′换鍔�';
+COMMENT ON COLUMN er_job_task_batch.execution_at IS '浠诲姟鎵ц鏃堕棿';
+COMMENT ON COLUMN er_job_task_batch.parent_id IS '鐖惰妭鐐�';
+COMMENT ON COLUMN er_job_task_batch.deleted IS '閫昏緫鍒犻櫎 1銆佸垹闄�';
+COMMENT ON COLUMN er_job_task_batch.create_dt IS '鍒涘缓鏃堕棿';
+COMMENT ON COLUMN er_job_task_batch.update_dt IS '鍒涘缓鏃堕棿';
+COMMENT ON COLUMN er_job_task_batch.ext_attrs IS '鎵╁睍瀛楁';
+COMMENT ON TABLE er_job_task_batch IS '浠诲姟鎵规';
+
+CREATE TABLE er_job_notify_config
+(
+    id                     BIGSERIAL PRIMARY KEY,
+    namespace_id           VARCHAR(64)  NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
+    group_name             VARCHAR(64)  NOT NULL,
+    job_id                 BIGINT       NOT NULL,
+    notify_status          SMALLINT     NOT NULL DEFAULT 0,
+    notify_type            SMALLINT     NOT NULL DEFAULT 0,
+    notify_attribute       VARCHAR(512) NOT NULL,
+    notify_threshold       INT          NOT NULL DEFAULT 0,
+    notify_scene           SMALLINT     NOT NULL DEFAULT 0,
+    rate_limiter_status    SMALLINT     NOT NULL DEFAULT 0,
+    rate_limiter_threshold INT          NOT NULL DEFAULT 0,
+    description            VARCHAR(256) NOT NULL DEFAULT '',
+    create_dt              TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    update_dt              TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP
+);
+
+CREATE INDEX idx_namespace_id_group_name_job_id_job_notify_config ON er_job_notify_config (namespace_id, group_name, job_id);
+
+COMMENT ON COLUMN er_job_notify_config.id IS '涓婚敭';
+COMMENT ON COLUMN er_job_notify_config.namespace_id IS '鍛藉悕绌洪棿id';
+COMMENT ON COLUMN er_job_notify_config.group_name IS '缁勫悕绉�';
+COMMENT ON COLUMN er_job_notify_config.job_id IS '浠诲姟淇℃伅id';
+COMMENT ON COLUMN er_job_notify_config.notify_status IS '閫氱煡鐘舵�� 0銆佹湭鍚敤 1銆佸惎鐢�';
+COMMENT ON COLUMN er_job_notify_config.notify_type IS '閫氱煡绫诲瀷 1銆侀拤閽� 2銆侀偖浠� 3銆佷紒涓氬井淇�';
+COMMENT ON COLUMN er_job_notify_config.notify_attribute IS '閰嶇疆灞炴��';
+COMMENT ON COLUMN er_job_notify_config.notify_threshold IS '閫氱煡闃堝��';
+COMMENT ON COLUMN er_job_notify_config.notify_scene IS '閫氱煡鍦烘櫙';
+COMMENT ON COLUMN er_job_notify_config.rate_limiter_status IS '闄愭祦鐘舵�� 0銆佹湭鍚敤 1銆佸惎鐢�';
+COMMENT ON COLUMN er_job_notify_config.rate_limiter_threshold IS '姣忕闄愭祦闃堝��';
+COMMENT ON COLUMN er_job_notify_config.description IS '鎻忚堪';
+COMMENT ON COLUMN er_job_notify_config.create_dt IS '鍒涘缓鏃堕棿';
+COMMENT ON COLUMN er_job_notify_config.update_dt IS '淇敼鏃堕棿';
+COMMENT ON TABLE er_job_notify_config IS '閫氱煡閰嶇疆';
+
+CREATE TABLE er_retry_summary
+(
+    id            BIGSERIAL PRIMARY KEY,
+    namespace_id  VARCHAR(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
+    group_name    VARCHAR(64) NOT NULL DEFAULT '',
+    scene_name    VARCHAR(50) NOT NULL DEFAULT '',
+    trigger_at    TIMESTAMP   NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    running_num   INT         NOT NULL DEFAULT 0,
+    finish_num    INT         NOT NULL DEFAULT 0,
+    max_count_num INT         NOT NULL DEFAULT 0,
+    suspend_num   INT         NOT NULL DEFAULT 0,
+    create_dt     TIMESTAMP   NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    update_dt     TIMESTAMP   NOT NULL DEFAULT CURRENT_TIMESTAMP
+);
+
+CREATE UNIQUE INDEX uk_scene_name_trigger_at ON er_retry_summary (namespace_id, group_name, scene_name, trigger_at);
+
+COMMENT ON COLUMN er_retry_summary.id IS '涓婚敭';
+COMMENT ON COLUMN er_retry_summary.namespace_id IS '鍛藉悕绌洪棿id';
+COMMENT ON COLUMN er_retry_summary.group_name IS '缁勫悕绉�';
+COMMENT ON COLUMN er_retry_summary.scene_name IS '鍦烘櫙鍚嶇О';
+COMMENT ON COLUMN er_retry_summary.trigger_at IS '缁熻鏃堕棿';
+COMMENT ON COLUMN er_retry_summary.running_num IS '閲嶈瘯涓�-鏃ュ織鏁伴噺';
+COMMENT ON COLUMN er_retry_summary.finish_num IS '閲嶈瘯瀹屾垚-鏃ュ織鏁伴噺';
+COMMENT ON COLUMN er_retry_summary.max_count_num IS '閲嶈瘯鍒拌揪鏈�澶ф鏁�-鏃ュ織鏁伴噺';
+COMMENT ON COLUMN er_retry_summary.suspend_num IS '鏆傚仠閲嶈瘯-鏃ュ織鏁伴噺';
+COMMENT ON COLUMN er_retry_summary.create_dt IS '鍒涘缓鏃堕棿';
+COMMENT ON COLUMN er_retry_summary.update_dt IS '淇敼鏃堕棿';
+COMMENT ON TABLE er_retry_summary IS 'DashBoard_Retry';
+
+CREATE TABLE er_job_summary
+(
+    id               BIGSERIAL PRIMARY KEY,
+    namespace_id     VARCHAR(64)  NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
+    group_name       VARCHAR(64)  NOT NULL DEFAULT '',
+    business_id      BIGINT       NOT NULL,
+    system_task_type SMALLINT     NOT NULL DEFAULT '3',
+    trigger_at       TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    success_num      INT          NOT NULL DEFAULT 0,
+    fail_num         INT          NOT NULL DEFAULT 0,
+    fail_reason      VARCHAR(512) NOT NULL DEFAULT '',
+    stop_num         INT          NOT NULL DEFAULT 0,
+    stop_reason      VARCHAR(512) NOT NULL DEFAULT '',
+    cancel_num       INT          NOT NULL DEFAULT 0,
+    cancel_reason    VARCHAR(512) NOT NULL DEFAULT '',
+    create_dt        TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    update_dt        TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP
+);
+
+CREATE UNIQUE INDEX uk_trigger_at_system_task_type_business_id ON er_job_summary (trigger_at, system_task_type, business_id);
+CREATE INDEX idx_namespace_id_group_name_job_id ON er_job_summary (namespace_id, group_name, business_id);
+
+COMMENT ON COLUMN er_job_summary.id IS '涓婚敭';
+COMMENT ON COLUMN er_job_summary.namespace_id IS '鍛藉悕绌洪棿id';
+COMMENT ON COLUMN er_job_summary.group_name IS '缁勫悕绉�';
+COMMENT ON COLUMN er_job_summary.business_id IS '涓氬姟id (job_id鎴杦orkflow_id)';
+COMMENT ON COLUMN er_job_summary.system_task_type IS '浠诲姟绫诲瀷 3銆丣OB浠诲姟 4銆乄ORKFLOW浠诲姟';
+COMMENT ON COLUMN er_job_summary.trigger_at IS '缁熻鏃堕棿';
+COMMENT ON COLUMN er_job_summary.success_num IS '鎵ц鎴愬姛-鏃ュ織鏁伴噺';
+COMMENT ON COLUMN er_job_summary.fail_num IS '鎵ц澶辫触-鏃ュ織鏁伴噺';
+COMMENT ON COLUMN er_job_summary.fail_reason IS '澶辫触鍘熷洜';
+COMMENT ON COLUMN er_job_summary.stop_num IS '鎵ц澶辫触-鏃ュ織鏁伴噺';
+COMMENT ON COLUMN er_job_summary.stop_reason IS '澶辫触鍘熷洜';
+COMMENT ON COLUMN er_job_summary.cancel_num IS '鎵ц澶辫触-鏃ュ織鏁伴噺';
+COMMENT ON COLUMN er_job_summary.cancel_reason IS '澶辫触鍘熷洜';
+COMMENT ON TABLE er_job_summary IS 'DashBoard_Job';
+
+CREATE TABLE er_workflow
+(
+    id               BIGSERIAL PRIMARY KEY,
+    workflow_name    varchar(64)  NOT NULL,
+    namespace_id     varchar(64)  NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
+    group_name       varchar(64)  NOT NULL,
+    workflow_status  smallint     NOT NULL DEFAULT 1,
+    trigger_type     smallint     NOT NULL,
+    trigger_interval varchar(255) NOT NULL,
+    next_trigger_at  BIGINT       NOT NULL,
+    block_strategy   smallint     NOT NULL DEFAULT 1,
+    executor_timeout INT          NOT NULL DEFAULT 0,
+    description      varchar(256) NOT NULL DEFAULT '',
+    flow_info        text                  DEFAULT NULL,
+    bucket_index     INT          NOT NULL DEFAULT 0,
+    version          INT          NOT NULL,
+    create_dt        timestamp    NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    update_dt        timestamp    NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    deleted          smallint     NOT NULL DEFAULT 0,
+    ext_attrs        varchar(256) NULL     DEFAULT ''
+);
+
+
+CREATE INDEX idx_create_dt_workflow ON er_workflow (create_dt);
+CREATE INDEX idx_namespace_id_group_name_workflow ON er_workflow (namespace_id, group_name);
+
+COMMENT ON TABLE er_workflow IS '宸ヤ綔娴�';
+COMMENT ON COLUMN er_workflow.id IS '涓婚敭';
+COMMENT ON COLUMN er_workflow.workflow_name IS '宸ヤ綔娴佸悕绉�';
+COMMENT ON COLUMN er_workflow.namespace_id IS '鍛藉悕绌洪棿id';
+COMMENT ON COLUMN er_workflow.group_name IS '缁勫悕绉�';
+COMMENT ON COLUMN er_workflow.workflow_status IS '宸ヤ綔娴佺姸鎬� 0銆佸叧闂��1銆佸紑鍚�';
+COMMENT ON COLUMN er_workflow.trigger_type IS '瑙﹀彂绫诲瀷 1.CRON 琛ㄨ揪寮� 2. 鍥哄畾鏃堕棿';
+COMMENT ON COLUMN er_workflow.trigger_interval IS '闂撮殧鏃堕暱';
+COMMENT ON COLUMN er_workflow.next_trigger_at IS '涓嬫瑙﹀彂鏃堕棿';
+COMMENT ON COLUMN er_workflow.block_strategy IS '闃诲绛栫暐 1銆佷涪寮� 2銆佽鐩� 3銆佸苟琛�';
+COMMENT ON COLUMN er_workflow.executor_timeout IS '浠诲姟鎵ц瓒呮椂鏃堕棿锛屽崟浣嶇';
+COMMENT ON COLUMN er_workflow.description IS '鎻忚堪';
+COMMENT ON COLUMN er_workflow.flow_info IS '娴佺▼淇℃伅';
+COMMENT ON COLUMN er_workflow.bucket_index IS 'bucket';
+COMMENT ON COLUMN er_workflow.version IS '鐗堟湰鍙�';
+COMMENT ON COLUMN er_workflow.create_dt IS '鍒涘缓鏃堕棿';
+COMMENT ON COLUMN er_workflow.update_dt IS '淇敼鏃堕棿';
+COMMENT ON COLUMN er_workflow.deleted IS '閫昏緫鍒犻櫎 1銆佸垹闄�';
+COMMENT ON COLUMN er_workflow.ext_attrs IS '鎵╁睍瀛楁';
+
+CREATE TABLE er_workflow_node
+(
+    id                   BIGSERIAL PRIMARY KEY,
+    namespace_id         VARCHAR(64)  NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
+    node_name            VARCHAR(64)  NOT NULL,
+    group_name           VARCHAR(64)  NOT NULL,
+    job_id               BIGINT       NOT NULL,
+    workflow_id          BIGINT       NOT NULL,
+    node_type            SMALLINT     NOT NULL DEFAULT 1,
+    expression_type      SMALLINT     NOT NULL DEFAULT 0,
+    fail_strategy        SMALLINT     NOT NULL DEFAULT 1,
+    workflow_node_status SMALLINT     NOT NULL DEFAULT 1,
+    priority_level       INT          NOT NULL DEFAULT 1,
+    node_info            TEXT                  DEFAULT NULL,
+    version              INT          NOT NULL,
+    create_dt            TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    update_dt            TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    deleted              SMALLINT     NOT NULL DEFAULT 0,
+    ext_attrs            VARCHAR(256) NULL     DEFAULT ''
+);
+
+CREATE INDEX idx_create_dt_workflow_node ON er_workflow_node (create_dt);
+CREATE INDEX idx_namespace_id_group_name_workflow_node ON er_workflow_node (namespace_id, group_name);
+
+COMMENT ON TABLE er_workflow_node IS '宸ヤ綔娴佽妭鐐�';
+COMMENT ON COLUMN er_workflow_node.id IS '涓婚敭';
+COMMENT ON COLUMN er_workflow_node.namespace_id IS '鍛藉悕绌洪棿id';
+COMMENT ON COLUMN er_workflow_node.node_name IS '鑺傜偣鍚嶇О';
+COMMENT ON COLUMN er_workflow_node.group_name IS '缁勫悕绉�';
+COMMENT ON COLUMN er_workflow_node.job_id IS '浠诲姟淇℃伅id';
+COMMENT ON COLUMN er_workflow_node.workflow_id IS '宸ヤ綔娴両D';
+COMMENT ON COLUMN er_workflow_node.node_type IS '1銆佷换鍔¤妭鐐� 2銆佹潯浠惰妭鐐�';
+COMMENT ON COLUMN er_workflow_node.expression_type IS '1銆丼pEl銆�2銆丄viator 3銆丵L';
+COMMENT ON COLUMN er_workflow_node.fail_strategy IS '澶辫触绛栫暐 1銆佽烦杩� 2銆侀樆濉�';
+COMMENT ON COLUMN er_workflow_node.workflow_node_status IS '宸ヤ綔娴佽妭鐐圭姸鎬� 0銆佸叧闂��1銆佸紑鍚�';
+COMMENT ON COLUMN er_workflow_node.priority_level IS '浼樺厛绾�';
+COMMENT ON COLUMN er_workflow_node.node_info IS '鑺傜偣淇℃伅';
+COMMENT ON COLUMN er_workflow_node.version IS '鐗堟湰鍙�';
+COMMENT ON COLUMN er_workflow_node.create_dt IS '鍒涘缓鏃堕棿';
+COMMENT ON COLUMN er_workflow_node.update_dt IS '淇敼鏃堕棿';
+COMMENT ON COLUMN er_workflow_node.deleted IS '閫昏緫鍒犻櫎 1銆佸垹闄�';
+COMMENT ON COLUMN er_workflow_node.ext_attrs IS '鎵╁睍瀛楁';
+
+CREATE TABLE er_workflow_task_batch
+(
+    id                BIGSERIAL PRIMARY KEY,
+    namespace_id      VARCHAR(64)  NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
+    group_name        VARCHAR(64)  NOT NULL,
+    workflow_id       BIGINT       NOT NULL,
+    task_batch_status SMALLINT     NOT NULL DEFAULT 0,
+    operation_reason  SMALLINT     NOT NULL DEFAULT 0,
+    flow_info         TEXT                  DEFAULT NULL,
+    execution_at      BIGINT       NOT NULL DEFAULT 0,
+    create_dt         TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    update_dt         TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    deleted           SMALLINT     NOT NULL DEFAULT 0,
+    ext_attrs         VARCHAR(256) NULL     DEFAULT ''
+);
+
+CREATE INDEX idx_job_id_task_batch_status_workflow_task_batch ON er_workflow_task_batch (workflow_id, task_batch_status);
+CREATE INDEX idx_create_dt_workflow_task_batch ON er_workflow_task_batch (create_dt);
+CREATE INDEX idx_namespace_id_group_name_workflow_task_batch ON er_workflow_task_batch (namespace_id, group_name);
+
+COMMENT ON TABLE er_workflow_task_batch IS '宸ヤ綔娴佹壒娆�';
+COMMENT ON COLUMN er_workflow_task_batch.id IS '涓婚敭';
+COMMENT ON COLUMN er_workflow_task_batch.namespace_id IS '鍛藉悕绌洪棿id';
+COMMENT ON COLUMN er_workflow_task_batch.group_name IS '缁勫悕绉�';
+COMMENT ON COLUMN er_workflow_task_batch.workflow_id IS '宸ヤ綔娴佷换鍔d';
+COMMENT ON COLUMN er_workflow_task_batch.task_batch_status IS '浠诲姟鎵规鐘舵�� 0銆佸け璐� 1銆佹垚鍔�';
+COMMENT ON COLUMN er_workflow_task_batch.operation_reason IS '鎿嶄綔鍘熷洜';
+COMMENT ON COLUMN er_workflow_task_batch.flow_info IS '娴佺▼淇℃伅';
+COMMENT ON COLUMN er_workflow_task_batch.execution_at IS '浠诲姟鎵ц鏃堕棿';
+COMMENT ON COLUMN er_workflow_task_batch.create_dt IS '鍒涘缓鏃堕棿';
+COMMENT ON COLUMN er_workflow_task_batch.update_dt IS '淇敼鏃堕棿';
+COMMENT ON COLUMN er_workflow_task_batch.deleted IS '閫昏緫鍒犻櫎 1銆佸垹闄�';
+COMMENT ON COLUMN er_workflow_task_batch.ext_attrs IS '鎵╁睍瀛楁';

--
Gitblit v1.9.3