diff --git a/continew-admin-webapi/src/main/resources/db/changelog/db.changelog-master.yaml b/continew-admin-webapi/src/main/resources/db/changelog/db.changelog-master.yaml
index ca10a07b..5a9f7bed 100644
--- a/continew-admin-webapi/src/main/resources/db/changelog/db.changelog-master.yaml
+++ b/continew-admin-webapi/src/main/resources/db/changelog/db.changelog-master.yaml
@@ -4,4 +4,11 @@ databaseChangeLog:
- include:
file: db/changelog/mysql/continew-admin_column.sql
- include:
- file: db/changelog/mysql/continew-admin_data.sql
\ No newline at end of file
+ file: db/changelog/mysql/continew-admin_data.sql
+# PostgreSQL
+# - include:
+# file: db/changelog/postgresql/continew-admin_table.sql
+# - include:
+# file: db/changelog/postgresql/continew-admin_column.sql
+# - include:
+# file: db/changelog/postgresql/continew-admin_data.sql
\ No newline at end of file
diff --git a/continew-admin-webapi/src/main/resources/db/changelog/postgresql/continew-admin_column.sql b/continew-admin-webapi/src/main/resources/db/changelog/postgresql/continew-admin_column.sql
new file mode 100644
index 00000000..874085b8
--- /dev/null
+++ b/continew-admin-webapi/src/main/resources/db/changelog/postgresql/continew-admin_column.sql
@@ -0,0 +1,2 @@
+-- liquibase formatted sql
+
diff --git a/continew-admin-webapi/src/main/resources/db/changelog/postgresql/continew-admin_data.sql b/continew-admin-webapi/src/main/resources/db/changelog/postgresql/continew-admin_data.sql
new file mode 100644
index 00000000..c4355767
--- /dev/null
+++ b/continew-admin-webapi/src/main/resources/db/changelog/postgresql/continew-admin_data.sql
@@ -0,0 +1,145 @@
+-- liquibase formatted sql
+
+-- changeset Charles7c:2.5.0
+-- comment 初始化表数据
+-- 初始化默认菜单
+INSERT INTO "sys_menu"
+("id", "title", "parent_id", "type", "path", "name", "component", "icon", "is_external", "is_cache", "is_hidden", "permission", "sort", "status", "create_user", "create_time", "update_user", "update_time")
+VALUES
+(1000, '系统管理', 0, 1, '/system', 'System', NULL, 'settings', false, false, false, NULL, 1, 1, 1, NOW(), NULL, NULL),
+(1010, '用户管理', 1000, 2, '/system/user', 'User', 'system/user/index', 'user', false, false, false, 'system:user:list', 1, 1, 1, NOW(), NULL, NULL),
+(1011, '用户新增', 1010, 3, NULL, NULL, NULL, NULL, false, false, false, 'system:user:add', 1, 1, 1, NOW(), NULL, NULL),
+(1012, '用户修改', 1010, 3, NULL, NULL, NULL, NULL, false, false, false, 'system:user:update', 2, 1, 1, NOW(), NULL, NULL),
+(1013, '用户删除', 1010, 3, NULL, NULL, NULL, NULL, false, false, false, 'system:user:delete', 3, 1, 1, NOW(), NULL, NULL),
+(1014, '用户导出', 1010, 3, NULL, NULL, NULL, NULL, false, false, false, 'system:user:export', 4, 1, 1, NOW(), NULL, NULL),
+(1015, '重置密码', 1010, 3, NULL, NULL, NULL, NULL, false, false, false, 'system:user:password:reset', 5, 1, 1, NOW(), NULL, NULL),
+(1016, '分配角色', 1010, 3, NULL, NULL, NULL, NULL, false, false, false, 'system:user:role:update', 6, 1, 1, NOW(), NULL, NULL),
+(1020, '部门管理', 1000, 2, '/system/dept', 'Dept', 'system/dept/index', 'user-group', false, false, false, 'system:dept:list', 2, 1, 1, NOW(), NULL, NULL),
+(1021, '部门新增', 1020, 3, NULL, NULL, NULL, NULL, false, false, false, 'system:dept:add', 1, 1, 1, NOW(), NULL, NULL),
+(1022, '部门修改', 1020, 3, NULL, NULL, NULL, NULL, false, false, false, 'system:dept:update', 2, 1, 1, NOW(), NULL, NULL),
+(1023, '部门删除', 1020, 3, NULL, NULL, NULL, NULL, false, false, false, 'system:dept:delete', 3, 1, 1, NOW(), NULL, NULL),
+(1024, '部门导出', 1020, 3, NULL, NULL, NULL, NULL, false, false, false, 'system:dept:export', 4, 1, 1, NOW(), NULL, NULL),
+(1030, '角色管理', 1000, 2, '/system/role', 'Role', 'system/role/index', 'safe', false, false, false, 'system:role:list', 3, 1, 1, NOW(), NULL, NULL),
+(1031, '角色新增', 1030, 3, NULL, NULL, NULL, NULL, false, false, false, 'system:role:add', 1, 1, 1, NOW(), NULL, NULL),
+(1032, '角色修改', 1030, 3, NULL, NULL, NULL, NULL, false, false, false, 'system:role:update', 2, 1, 1, NOW(), NULL, NULL),
+(1033, '角色删除', 1030, 3, NULL, NULL, NULL, NULL, false, false, false, 'system:role:delete', 3, 1, 1, NOW(), NULL, NULL),
+(1034, '角色导出', 1030, 3, NULL, NULL, NULL, NULL, false, false, false, 'system:role:export', 4, 1, 1, NOW(), NULL, NULL),
+(1040, '菜单管理', 1000, 2, '/system/menu', 'Menu', 'system/menu/index', 'menu', false, false, false, 'system:menu:list', 4, 1, 1, NOW(), NULL, NULL),
+(1041, '菜单新增', 1040, 3, NULL, NULL, NULL, NULL, false, false, false, 'system:menu:add', 1, 1, 1, NOW(), NULL, NULL),
+(1042, '菜单修改', 1040, 3, NULL, NULL, NULL, NULL, false, false, false, 'system:menu:update', 2, 1, 1, NOW(), NULL, NULL),
+(1043, '菜单删除', 1040, 3, NULL, NULL, NULL, NULL, false, false, false, 'system:menu:delete', 3, 1, 1, NOW(), NULL, NULL),
+(1044, '菜单导出', 1040, 3, NULL, NULL, NULL, NULL, false, false, false, 'system:menu:export', 4, 1, 1, NOW(), NULL, NULL),
+(1050, '公告管理', 1000, 2, '/system/announcement', 'Announcement', 'system/announcement/index', 'advertising', false, false, false, 'system:announcement:list', 5, 1, 1, NOW(), NULL, NULL),
+(1051, '公告新增', 1050, 3, NULL, NULL, NULL, NULL, false, false, false, 'system:announcement:add', 1, 1, 1, NOW(), NULL, NULL),
+(1052, '公告修改', 1050, 3, NULL, NULL, NULL, NULL, false, false, false, 'system:announcement:update', 2, 1, 1, NOW(), NULL, NULL),
+(1053, '公告删除', 1050, 3, NULL, NULL, NULL, NULL, false, false, false, 'system:announcement:delete', 3, 1, 1, NOW(), NULL, NULL),
+(1054, '公告导出', 1050, 3, NULL, NULL, NULL, NULL, false, false, false, 'system:announcement:export', 4, 1, 1, NOW(), NULL, NULL),
+(1060, '消息管理', 1000, 2, '/system/message', 'Message', 'system/message/index', 'notification', false, false, false, 'system:message:list', 6, 1, 1, NOW(), NULL, NULL),
+(1061, '消息删除', 1060, 3, NULL, NULL, NULL, NULL, false, false, false, 'system:message:delete', 1, 1, 1, NOW(), NULL, NULL),
+(1070, '字典管理', 1000, 2, '/system/dict', 'Dict', 'system/dict/index', 'bookmark', false, false, false, 'system:dict:list', 7, 1, 1, NOW(), NULL, NULL),
+(1071, '字典新增', 1070, 3, NULL, NULL, NULL, NULL, false, false, false, 'system:dict:add', 1, 1, 1, NOW(), NULL, NULL),
+(1072, '字典修改', 1070, 3, NULL, NULL, NULL, NULL, false, false, false, 'system:dict:update', 2, 1, 1, NOW(), NULL, NULL),
+(1073, '字典删除', 1070, 3, NULL, NULL, NULL, NULL, false, false, false, 'system:dict:delete', 3, 1, 1, NOW(), NULL, NULL),
+(1074, '字典导出', 1070, 3, NULL, NULL, NULL, NULL, false, false, false, 'system:dict:export', 4, 1, 1, NOW(), NULL, NULL),
+(1080, '系统配置', 1000, 2, '/system/config', 'Config', 'system/config/index', 'desktop', false, false, false, 'system:config:list', 8, 1, 1, NOW(), NULL, NULL),
+(1081, '修改配置', 1080, 3, NULL, NULL, NULL, NULL, false, false, false, 'system:config:update', 1, 1, 1, NOW(), NULL, NULL),
+(1082, '恢复默认', 1080, 3, NULL, NULL, NULL, NULL, false, false, false, 'system:config:reset', 2, 1, 1, NOW(), NULL, NULL),
+(1090, '文件管理', 1000, 2, '/system/file', 'File', 'system/file/index', 'file', false, false, false, 'system:file:list', 9, 1, 1, NOW(), NULL, NULL),
+(1091, '文件上传', 1090, 3, NULL, NULL, NULL, NULL, false, false, false, 'system:file:upload', 1, 1, 1, NOW(), NULL, NULL),
+(1092, '文件修改', 1090, 3, NULL, NULL, NULL, NULL, false, false, false, 'system:file:update', 2, 1, 1, NOW(), NULL, NULL),
+(1093, '文件删除', 1090, 3, NULL, NULL, NULL, NULL, false, false, false, 'system:file:delete', 3, 1, 1, NOW(), NULL, NULL),
+(1094, '文件下载', 1090, 3, NULL, NULL, NULL, NULL, false, false, false, 'system:file:download', 4, 1, 1, NOW(), NULL, NULL),
+(1100, '存储管理', 1000, 2, '/system/storage', 'Storage', 'system/storage/index', 'storage', false, false, true, 'system:storage:list', 10, 1, 1, NOW(), NULL, NULL),
+(1101, '存储新增', 1100, 3, NULL, NULL, NULL, NULL, false, false, false, 'system:storage:add', 1, 1, 1, NOW(), NULL, NULL),
+(1102, '存储修改', 1100, 3, NULL, NULL, NULL, NULL, false, false, false, 'system:storage:update', 2, 1, 1, NOW(), NULL, NULL),
+(1103, '存储删除', 1100, 3, NULL, NULL, NULL, NULL, false, false, false, 'system:storage:delete', 3, 1, 1, NOW(), NULL, NULL),
+(1104, '存储导出', 1100, 3, NULL, NULL, NULL, NULL, false, false, false, 'system:storage:export', 4, 1, 1, NOW(), NULL, NULL),
+(2000, '系统工具', 0, 1, '/tool', 'Tool', NULL, 'tool', false, false, false, NULL, 2, 1, 1, NOW(), NULL, NULL),
+(2010, '代码生成', 2000, 2, '/tool/generator', 'Generator', 'tool/generator/index', 'code', false, false, false, 'tool:generator:list', 1, 1, 1, NOW(), NULL, NULL),
+(9000, '系统监控', 0, 1, '/monitor', 'Monitor', NULL, 'computer', false, false, false, NULL, 899, 1, 1, NOW(), NULL, NULL),
+(9010, '在线用户', 9000, 2, '/monitor/online', 'OnlineUser', 'monitor/online/index', 'anonymity', false, false, false, 'monitor:online:user:list', 1, 1, 1, NOW(), NULL, NULL),
+(9011, '强退用户', 9010, 3, NULL, NULL, NULL, NULL, false, false, false, 'monitor:online:user:delete', 1, 1, 1, NOW(), NULL, NULL),
+(9030, '登录日志', 9000, 2, '/monitor/log/login', 'LoginLog', 'monitor/log/login/index', 'old-version', false, false, false, 'monitor:log:login:list', 2, 1, 1, NOW(), NULL, NULL),
+(9050, '操作日志', 9000, 2, '/monitor/log/operation', 'OperationLog', 'monitor/log/operation/index', 'history', false, false, false, 'monitor:log:operation:list', 3, 1, 1, NOW(), NULL, NULL),
+(9070, '系统日志', 9000, 2, '/monitor/log/system', 'SystemLog', 'monitor/log/system/index', 'behavior-anal', false, false, false, 'monitor:log:system:list', 4, 1, 1, NOW(), NULL, NULL),
+(10000, '接口文档', 0, 1, 'https://api.charles7c.top/doc.html', NULL, NULL, 'code-square', true, false, false, NULL, 997, 1, 1, NOW(), NULL, NULL),
+(10001, 'Arco Design Vue', 0, 1, 'https://arco.design/vue/docs/start', NULL, NULL, 'link', true, false, false, NULL, 998, 1, 1, NOW(), NULL, NULL),
+(10002, 'GitHub', 0, 1, 'https://github.com/Charles7c/continew-admin', NULL, NULL, 'github', true, false, false, NULL, 999, 1, 1, NOW(), NULL, NULL);
+
+-- 初始化默认部门
+INSERT INTO "sys_dept"
+("id", "name", "parent_id", "ancestors", "description", "sort", "status", "is_system", "create_user", "create_time", "update_user", "update_time")
+VALUES
+(1, 'Xxx科技有限公司', 0, '0', '系统初始部门', 1, 1, true, 1, NOW(), NULL, NULL),
+(547887852587843590, '天津总部', 1, '0,1', NULL, 1, 1, false, 1, NOW(), NULL, NULL),
+(547888008188133385, '研发部', 547887852587843590, '0,1,2', NULL, 1, 1, false, 1, NOW(), NULL, NULL),
+(547888460711591948, 'UI部', 547887852587843590, '0,1,2', NULL, 2, 1, false, 1, NOW(), NULL, NULL),
+(547888483713155087, '测试部', 547887852587843590, '0,1,2', NULL, 3, 1, false, 1, NOW(), NULL, NULL),
+(547888505959743506, '运维部', 547887852587843590, '0,1,2', NULL, 4, 1, false, 1, NOW(), NULL, NULL),
+(547888556819873814, '研发一组', 547888008188133385, '0,1,2,3', NULL, 1, 1, false, 1, NOW(), NULL, NULL),
+(547888580614160409, '研发二组', 547888008188133385, '0,1,2,3', NULL, 2, 2, false, 1, NOW(), NULL, NULL);
+
+-- 初始化默认角色
+INSERT INTO "sys_role"
+("id", "name", "code", "data_scope", "description", "sort", "status", "is_system", "create_user", "create_time", "update_user", "update_time")
+VALUES
+(1, '超级管理员', 'admin', 1, '系统初始角色', 1, 1, true, 1, NOW(), NULL, NULL),
+(547888897925840928, '测试人员', 'test', 5, NULL, 2, 1, false, 1, NOW(), NULL, NULL);
+
+-- 初始化默认用户:admin/admin123;test/123456
+INSERT INTO "sys_user"
+("id", "username", "nickname", "password", "gender", "email", "phone", "avatar", "description", "status", "is_system", "pwd_reset_time", "dept_id", "create_user", "create_time", "update_user", "update_time")
+VALUES
+(1, 'admin', '超级管理员', '{bcrypt}$2a$10$4jGwK2BMJ7FgVR.mgwGodey8.xR8FLoU1XSXpxJ9nZQt.pufhasSa', 1, '42190c6c5639d2ca4edb4150a35e058559ccf8270361a23745a2fd285a273c28', '5bda89a4609a65546422ea56bfe5eab4', NULL, '系统初始用户', 1, true, NOW(), 1, 1, NOW(), NULL, NULL),
+(547889293968801831, 'test', '测试员', '{bcrypt}$2a$10$meMbyso06lupZjxT88fG8undZo6.DSNUmifRfnnre8r/s13ciq6M6', 2, NULL, NULL, NULL, NULL, 2, false, NOW(), 547888483713155087, 1, NOW(), NULL, NULL);
+
+-- 初始化默认参数
+INSERT INTO "sys_option"
+("name", "code", "value", "default_value", "description", "update_user", "update_time")
+VALUES
+('系统标题', 'site_title', NULL, 'ContiNew Admin', '用于显示登录页面的系统标题。', NULL, NULL),
+('版权信息', 'site_copyright', NULL,
+ 'Copyright © 2022-present Charles7c ⋅ ContiNew Admin ⋅ 津ICP备2022005864号-2',
+ '用于显示登录页面的底部版权信息。', NULL, NULL),
+('系统LOGO(16*16)', 'site_favicon', NULL, 'https://cnadmin.charles7c.top/favicon.ico', '用于显示浏览器地址栏的系统LOGO。', NULL, NULL),
+('系统LOGO(33*33)', 'site_logo', NULL, 'https://cnadmin.charles7c.top/logo.svg', '用于显示登录页面的系统LOGO。', NULL, NULL);
+
+-- 初始化默认字典
+INSERT INTO "sys_dict"
+("id", "name", "code", "description", "is_system", "create_user", "create_time", "update_user", "update_time")
+VALUES
+(547889614262632491, '公告类型', 'announcement_type', NULL, true, 1, NOW(), NULL, NULL);
+
+INSERT INTO "sys_dict_item"
+("id", "label", "value", "color", "sort", "description", "dict_id", "create_user", "create_time", "update_user", "update_time")
+VALUES
+(547889649658363951, '通知', '1', 'blue', 1, NULL, 547889614262632491, 1, NOW(), NULL, NULL),
+(547890124537462835, '活动', '2', 'orangered', 2, NULL, 547889614262632491, 1, NOW(), NULL, NULL);
+
+-- 初始化默认用户和角色关联数据
+INSERT INTO "sys_user_role"
+("user_id", "role_id")
+VALUES
+(1, 1),
+(547889293968801831, 547888897925840928);
+
+-- 初始化默认角色和菜单关联数据
+INSERT INTO "sys_role_menu"
+("role_id", "menu_id")
+VALUES
+(547889293968801831, 1000),
+(547889293968801831, 1010),
+(547889293968801831, 1011),
+(547889293968801831, 1012),
+(547889293968801831, 1013),
+(547889293968801831, 1014);
+
+-- 初始化默认角色和部门关联数据
+INSERT INTO "sys_role_dept" ("role_id", "dept_id") VALUES (547888897925840928, 547888483713155087);
+
+-- 初始化默认存储库
+INSERT INTO "sys_storage"
+("id", "name", "code", "type", "access_key", "secret_key", "endpoint", "bucket_name", "domain", "description", "is_default", "sort", "status", "create_user", "create_time", "update_user", "update_time")
+VALUES
+(547890346239983671, '开发环境', 'local_dev', 2, NULL, NULL, NULL, 'C:/continew-admin/data/file/', 'http://localhost:8000/file', '本地存储', true, 1, 1, 1, NOW(), NULL, NULL),
+(547890366586552377, '生产环境', 'local_prod', 2, NULL, NULL, NULL, '../data/file/', 'http://api.charles7c.top/file', '本地存储', false, 2, 2, 1, NOW(), NULL, NULL);
\ No newline at end of file
diff --git a/continew-admin-webapi/src/main/resources/db/changelog/postgresql/continew-admin_table.sql b/continew-admin-webapi/src/main/resources/db/changelog/postgresql/continew-admin_table.sql
new file mode 100644
index 00000000..a95bfe6b
--- /dev/null
+++ b/continew-admin-webapi/src/main/resources/db/changelog/postgresql/continew-admin_table.sql
@@ -0,0 +1,517 @@
+-- liquibase formatted sql
+
+-- changeset Charles7c:2.5.0
+-- comment 初始化表结构
+CREATE TABLE IF NOT EXISTS "sys_menu" (
+ "id" int8 NOT NULL,
+ "title" varchar(30) NOT NULL,
+ "parent_id" int8 NOT NULL DEFAULT 0,
+ "type" int2 NOT NULL DEFAULT 1,
+ "path" varchar(255) DEFAULT NULL,
+ "name" varchar(50) DEFAULT NULL,
+ "component" varchar(255) DEFAULT NULL,
+ "icon" varchar(50) DEFAULT NULL,
+ "is_external" bool NOT NULL DEFAULT false,
+ "is_cache" bool NOT NULL DEFAULT false,
+ "is_hidden" bool NOT NULL DEFAULT false,
+ "permission" varchar(100) DEFAULT NULL,
+ "sort" int4 NOT NULL DEFAULT 999,
+ "status" int2 NOT NULL DEFAULT 1,
+ "create_user" int8 NOT NULL,
+ "create_time" timestamp NOT NULL,
+ "update_user" int8 DEFAULT NULL,
+ "update_time" timestamp DEFAULT NULL,
+ PRIMARY KEY ("id")
+);
+CREATE INDEX "idx_menu_parent_id" ON "sys_menu" ("parent_id");
+CREATE INDEX "idx_menu_create_user" ON "sys_menu" ("create_user");
+CREATE INDEX "idx_menu_update_user" ON "sys_menu" ("update_user");
+CREATE UNIQUE INDEX "uk_menu_title_parent_id" ON "sys_menu" ("title", "parent_id");
+COMMENT ON COLUMN "sys_menu"."id" IS 'ID';
+COMMENT ON COLUMN "sys_menu"."title" IS '标题';
+COMMENT ON COLUMN "sys_menu"."parent_id" IS '上级菜单ID';
+COMMENT ON COLUMN "sys_menu"."type" IS '类型(1:目录;2:菜单;3:按钮)';
+COMMENT ON COLUMN "sys_menu"."path" IS '路由地址';
+COMMENT ON COLUMN "sys_menu"."name" IS '组件名称';
+COMMENT ON COLUMN "sys_menu"."component" IS '组件路径';
+COMMENT ON COLUMN "sys_menu"."icon" IS '图标';
+COMMENT ON COLUMN "sys_menu"."is_external" IS '是否外链';
+COMMENT ON COLUMN "sys_menu"."is_cache" IS '是否缓存';
+COMMENT ON COLUMN "sys_menu"."is_hidden" IS '是否隐藏';
+COMMENT ON COLUMN "sys_menu"."permission" IS '权限标识';
+COMMENT ON COLUMN "sys_menu"."sort" IS '排序';
+COMMENT ON COLUMN "sys_menu"."status" IS '状态(1:启用;2:禁用)';
+COMMENT ON COLUMN "sys_menu"."create_user" IS '创建人';
+COMMENT ON COLUMN "sys_menu"."create_time" IS '创建时间';
+COMMENT ON COLUMN "sys_menu"."update_user" IS '修改人';
+COMMENT ON COLUMN "sys_menu"."update_time" IS '修改时间';
+COMMENT ON TABLE "sys_menu" IS '菜单表';
+
+CREATE TABLE IF NOT EXISTS "sys_dept" (
+ "id" int8 NOT NULL,
+ "name" varchar(30) NOT NULL,
+ "parent_id" int8 NOT NULL DEFAULT 0,
+ "ancestors" varchar(512) NOT NULL DEFAULT '',
+ "description" varchar(200) DEFAULT NULL,
+ "sort" int4 NOT NULL DEFAULT 999,
+ "status" int2 NOT NULL DEFAULT 1,
+ "is_system" bool NOT NULL DEFAULT false,
+ "create_user" int8 NOT NULL,
+ "create_time" timestamp NOT NULL,
+ "update_user" int8 DEFAULT NULL,
+ "update_time" timestamp DEFAULT NULL,
+ PRIMARY KEY ("id")
+);
+CREATE INDEX "idx_dept_parent_id" ON "sys_dept" ("parent_id");
+CREATE INDEX "idx_dept_create_user" ON "sys_dept" ("create_user");
+CREATE INDEX "idx_dept_update_user" ON "sys_dept" ("update_user");
+CREATE UNIQUE INDEX "uk_dept_name_parent_id" ON "sys_dept" ("name", "parent_id");
+COMMENT ON COLUMN "sys_dept"."id" IS 'ID';
+COMMENT ON COLUMN "sys_dept"."name" IS '名称';
+COMMENT ON COLUMN "sys_dept"."parent_id" IS '上级部门ID';
+COMMENT ON COLUMN "sys_dept"."ancestors" IS '祖级列表';
+COMMENT ON COLUMN "sys_dept"."description" IS '描述';
+COMMENT ON COLUMN "sys_dept"."sort" IS '排序';
+COMMENT ON COLUMN "sys_dept"."status" IS '状态(1:启用;2:禁用)';
+COMMENT ON COLUMN "sys_dept"."is_system" IS '是否为系统内置数据';
+COMMENT ON COLUMN "sys_dept"."create_user" IS '创建人';
+COMMENT ON COLUMN "sys_dept"."create_time" IS '创建时间';
+COMMENT ON COLUMN "sys_dept"."update_user" IS '修改人';
+COMMENT ON COLUMN "sys_dept"."update_time" IS '修改时间';
+COMMENT ON TABLE "sys_dept" IS '部门表';
+
+CREATE TABLE IF NOT EXISTS "sys_role" (
+ "id" int8 NOT NULL,
+ "name" varchar(30) NOT NULL,
+ "code" varchar(30) NOT NULL,
+ "data_scope" int2 NOT NULL DEFAULT 4,
+ "description" varchar(200) DEFAULT NULL,
+ "sort" int4 NOT NULL DEFAULT 999,
+ "status" int2 NOT NULL DEFAULT 1,
+ "is_system" bool NOT NULL DEFAULT false,
+ "create_user" int8 NOT NULL,
+ "create_time" timestamp NOT NULL,
+ "update_user" int8 DEFAULT NULL,
+ "update_time" timestamp DEFAULT NULL,
+ PRIMARY KEY ("id")
+);
+CREATE UNIQUE INDEX "uk_role_name" ON "sys_role" ("name");
+CREATE UNIQUE INDEX "uk_role_code" ON "sys_role" ("code");
+CREATE INDEX "idx_role_create_user" ON "sys_role" ("create_user");
+CREATE INDEX "idx_role_update_user" ON "sys_role" ("update_user");
+COMMENT ON COLUMN "sys_role"."id" IS 'ID';
+COMMENT ON COLUMN "sys_role"."name" IS '名称';
+COMMENT ON COLUMN "sys_role"."code" IS '编码';
+COMMENT ON COLUMN "sys_role"."data_scope" IS '数据权限(1:全部数据权限;2:本部门及以下数据权限;3:本部门数据权限;4:仅本人数据权限;5:自定义数据权限)';
+COMMENT ON COLUMN "sys_role"."description" IS '描述';
+COMMENT ON COLUMN "sys_role"."sort" IS '排序';
+COMMENT ON COLUMN "sys_role"."status" IS '状态(1:启用;2:禁用)';
+COMMENT ON COLUMN "sys_role"."is_system" IS '是否为系统内置数据';
+COMMENT ON COLUMN "sys_role"."create_user" IS '创建人';
+COMMENT ON COLUMN "sys_role"."create_time" IS '创建时间';
+COMMENT ON COLUMN "sys_role"."update_user" IS '修改人';
+COMMENT ON COLUMN "sys_role"."update_time" IS '修改时间';
+COMMENT ON TABLE "sys_role" IS '角色表';
+
+CREATE TABLE IF NOT EXISTS "sys_user" (
+ "id" int8 NOT NULL,
+ "username" varchar(64) NOT NULL,
+ "nickname" varchar(30) NOT NULL,
+ "password" varchar(255) DEFAULT NULL,
+ "gender" int2 NOT NULL DEFAULT 0,
+ "email" varchar(255) DEFAULT NULL,
+ "phone" varchar(255) DEFAULT NULL,
+ "avatar" varchar(255) DEFAULT NULL,
+ "description" varchar(200) DEFAULT NULL,
+ "status" int2 NOT NULL DEFAULT 1,
+ "is_system" bool NOT NULL DEFAULT false,
+ "pwd_reset_time" timestamp DEFAULT NULL,
+ "dept_id" int8 NOT NULL,
+ "create_user" int8 DEFAULT NULL,
+ "create_time" timestamp NOT NULL,
+ "update_user" int8 DEFAULT NULL,
+ "update_time" timestamp DEFAULT NULL,
+ PRIMARY KEY ("id")
+);
+CREATE UNIQUE INDEX "uk_user_username" ON "sys_user" ("username");
+CREATE UNIQUE INDEX "uk_user_email" ON "sys_user" ("email");
+CREATE UNIQUE INDEX "uk_user_phone" ON "sys_user" ("phone");
+CREATE INDEX "idx_user_dept_id" ON "sys_user" ("dept_id");
+CREATE INDEX "idx_user_create_user" ON "sys_user" ("create_user");
+CREATE INDEX "idx_user_update_user" ON "sys_user" ("update_user");
+COMMENT ON COLUMN "sys_user"."id" IS 'ID';
+COMMENT ON COLUMN "sys_user"."username" IS '用户名';
+COMMENT ON COLUMN "sys_user"."nickname" IS '昵称';
+COMMENT ON COLUMN "sys_user"."password" IS '密码';
+COMMENT ON COLUMN "sys_user"."gender" IS '性别(0:未知;1:男;2:女)';
+COMMENT ON COLUMN "sys_user"."email" IS '邮箱';
+COMMENT ON COLUMN "sys_user"."phone" IS '手机号码';
+COMMENT ON COLUMN "sys_user"."avatar" IS '头像地址';
+COMMENT ON COLUMN "sys_user"."description" IS '描述';
+COMMENT ON COLUMN "sys_user"."status" IS '状态(1:启用;2:禁用)';
+COMMENT ON COLUMN "sys_user"."is_system" IS '是否为系统内置数据';
+COMMENT ON COLUMN "sys_user"."pwd_reset_time" IS '最后一次修改密码时间';
+COMMENT ON COLUMN "sys_user"."dept_id" IS '部门ID';
+COMMENT ON COLUMN "sys_user"."create_user" IS '创建人';
+COMMENT ON COLUMN "sys_user"."create_time" IS '创建时间';
+COMMENT ON COLUMN "sys_user"."update_user" IS '修改人';
+COMMENT ON COLUMN "sys_user"."update_time" IS '修改时间';
+COMMENT ON TABLE "sys_user" IS '用户表';
+
+CREATE TABLE IF NOT EXISTS "sys_user_social" (
+ "source" varchar(255) NOT NULL,
+ "open_id" varchar(255) NOT NULL,
+ "user_id" int8 NOT NULL,
+ "meta_json" text DEFAULT NULL,
+ "last_login_time" timestamp DEFAULT NULL,
+ "create_time" timestamp NOT NULL
+);
+CREATE UNIQUE INDEX "uk_user_source_open_id" ON "sys_user_social" ("source", "open_id");
+COMMENT ON COLUMN "sys_user_social"."source" IS '来源';
+COMMENT ON COLUMN "sys_user_social"."open_id" IS '开放ID';
+COMMENT ON COLUMN "sys_user_social"."user_id" IS '用户ID';
+COMMENT ON COLUMN "sys_user_social"."meta_json" IS '附加信息';
+COMMENT ON COLUMN "sys_user_social"."last_login_time" IS '最后登录时间';
+COMMENT ON COLUMN "sys_user_social"."create_time" IS '创建时间';
+COMMENT ON TABLE "sys_user_social" IS '用户社会化关联表';
+
+CREATE TABLE IF NOT EXISTS "sys_user_role" (
+ "user_id" int8 NOT NULL,
+ "role_id" int8 NOT NULL,
+ PRIMARY KEY ("user_id", "role_id")
+);
+COMMENT ON COLUMN "sys_user_role"."user_id" IS '用户ID';
+COMMENT ON COLUMN "sys_user_role"."role_id" IS '角色ID';
+COMMENT ON TABLE "sys_user_role" IS '用户和角色关联表';
+
+CREATE TABLE IF NOT EXISTS "sys_role_menu" (
+ "role_id" int8 NOT NULL,
+ "menu_id" int8 NOT NULL,
+ PRIMARY KEY ("role_id", "menu_id")
+);
+COMMENT ON COLUMN "sys_role_menu"."role_id" IS '角色ID';
+COMMENT ON COLUMN "sys_role_menu"."menu_id" IS '菜单ID';
+COMMENT ON TABLE "sys_role_menu" IS '角色和菜单关联表';
+
+CREATE TABLE IF NOT EXISTS "sys_role_dept" (
+ "role_id" int8 NOT NULL,
+ "dept_id" int8 NOT NULL,
+ PRIMARY KEY ("role_id", "dept_id")
+);
+COMMENT ON COLUMN "sys_role_dept"."role_id" IS '角色ID';
+COMMENT ON COLUMN "sys_role_dept"."dept_id" IS '部门ID';
+COMMENT ON TABLE "sys_role_dept" IS '角色和部门关联表';
+
+CREATE TABLE IF NOT EXISTS "sys_option" (
+ "name" varchar(50) NOT NULL,
+ "code" varchar(100) NOT NULL,
+ "value" text DEFAULT NULL,
+ "default_value" text DEFAULT NULL,
+ "description" varchar(200) DEFAULT NULL,
+ "update_user" int8 DEFAULT NULL,
+ "update_time" timestamp DEFAULT NULL,
+ PRIMARY KEY ("code")
+);
+CREATE INDEX "idx_option_update_user" ON "sys_option" ("update_user");
+COMMENT ON COLUMN "sys_option"."name" IS '名称';
+COMMENT ON COLUMN "sys_option"."code" IS '键';
+COMMENT ON COLUMN "sys_option"."value" IS '值';
+COMMENT ON COLUMN "sys_option"."default_value" IS '默认值';
+COMMENT ON COLUMN "sys_option"."description" IS '描述';
+COMMENT ON COLUMN "sys_option"."update_user" IS '修改人';
+COMMENT ON COLUMN "sys_option"."update_time" IS '修改时间';
+COMMENT ON TABLE "sys_option" IS '参数表';
+
+CREATE TABLE IF NOT EXISTS "sys_dict" (
+ "id" int8 NOT NULL,
+ "name" varchar(30) NOT NULL,
+ "code" varchar(30) NOT NULL,
+ "description" varchar(200) DEFAULT NULL,
+ "is_system" bool NOT NULL DEFAULT false,
+ "create_user" int8 NOT NULL,
+ "create_time" timestamp NOT NULL,
+ "update_user" int8 DEFAULT NULL,
+ "update_time" timestamp DEFAULT NULL,
+ PRIMARY KEY ("id")
+);
+CREATE UNIQUE INDEX "uk_dict_name" ON "sys_dict" ("name");
+CREATE UNIQUE INDEX "uk_dict_code" ON "sys_dict" ("code");
+COMMENT ON COLUMN "sys_dict"."id" IS 'ID';
+COMMENT ON COLUMN "sys_dict"."name" IS '名称';
+COMMENT ON COLUMN "sys_dict"."code" IS '编码';
+COMMENT ON COLUMN "sys_dict"."description" IS '描述';
+COMMENT ON COLUMN "sys_dict"."is_system" IS '是否为系统内置数据';
+COMMENT ON COLUMN "sys_dict"."create_user" IS '创建人';
+COMMENT ON COLUMN "sys_dict"."create_time" IS '创建时间';
+COMMENT ON COLUMN "sys_dict"."update_user" IS '修改人';
+COMMENT ON COLUMN "sys_dict"."update_time" IS '修改时间';
+COMMENT ON TABLE "sys_dict" IS '字典表';
+
+CREATE TABLE IF NOT EXISTS "sys_dict_item" (
+ "id" int8 NOT NULL,
+ "label" varchar(30) NOT NULL,
+ "value" varchar(30) NOT NULL,
+ "color" varchar(30) DEFAULT NULL,
+ "sort" int4 NOT NULL DEFAULT 999,
+ "description" varchar(200) DEFAULT NULL,
+ "dict_id" int8 NOT NULL,
+ "create_user" int8 NOT NULL,
+ "create_time" timestamp NOT NULL,
+ "update_user" int8 DEFAULT NULL,
+ "update_time" timestamp DEFAULT NULL,
+ PRIMARY KEY ("id")
+);
+CREATE UNIQUE INDEX "uk_dict_item_value_dict_id" ON "sys_dict_item" ("value", "dict_id");
+CREATE INDEX "idx_dict_item_dict_id" ON "sys_dict_item" ("dict_id");
+CREATE INDEX "idx_dict_item_create_user" ON "sys_dict_item" ("create_user");
+CREATE INDEX "idx_dict_item_update_user" ON "sys_dict_item" ("update_user");
+COMMENT ON COLUMN "sys_dict_item"."id" IS 'ID';
+COMMENT ON COLUMN "sys_dict_item"."label" IS '标签';
+COMMENT ON COLUMN "sys_dict_item"."value" IS '值';
+COMMENT ON COLUMN "sys_dict_item"."color" IS '标签颜色';
+COMMENT ON COLUMN "sys_dict_item"."sort" IS '排序';
+COMMENT ON COLUMN "sys_dict_item"."description" IS '描述';
+COMMENT ON COLUMN "sys_dict_item"."dict_id" IS '字典ID';
+COMMENT ON COLUMN "sys_dict_item"."create_user" IS '创建人';
+COMMENT ON COLUMN "sys_dict_item"."create_time" IS '创建时间';
+COMMENT ON COLUMN "sys_dict_item"."update_user" IS '修改人';
+COMMENT ON COLUMN "sys_dict_item"."update_time" IS '修改时间';
+COMMENT ON TABLE "sys_dict_item" IS '字典项表';
+
+CREATE TABLE IF NOT EXISTS "sys_log" (
+ "id" int8 NOT NULL,
+ "trace_id" varchar(255) DEFAULT NULL,
+ "description" varchar(255) NOT NULL,
+ "module" varchar(50) NOT NULL,
+ "request_url" varchar(512) NOT NULL,
+ "request_method" varchar(10) NOT NULL,
+ "request_headers" text DEFAULT NULL,
+ "request_body" text DEFAULT NULL,
+ "status_code" int4 NOT NULL,
+ "response_headers" text DEFAULT NULL,
+ "response_body" text DEFAULT NULL,
+ "time_taken" int8 NOT NULL,
+ "ip" varchar(100) DEFAULT NULL,
+ "address" varchar(255) DEFAULT NULL,
+ "browser" varchar(100) DEFAULT NULL,
+ "os" varchar(100) DEFAULT NULL,
+ "status" int2 NOT NULL DEFAULT 1,
+ "error_msg" text DEFAULT NULL,
+ "create_user" int8 DEFAULT NULL,
+ "create_time" timestamp NOT NULL,
+ PRIMARY KEY ("id")
+);
+CREATE INDEX "idx_log_module" ON "sys_log" ("module");
+CREATE INDEX "idx_log_ip" ON "sys_log" ("ip");
+CREATE INDEX "idx_log_create_time" ON "sys_log" ("create_time");
+COMMENT ON COLUMN "sys_log"."id" IS 'ID';
+COMMENT ON COLUMN "sys_log"."trace_id" IS '链路ID';
+COMMENT ON COLUMN "sys_log"."description" IS '日志描述';
+COMMENT ON COLUMN "sys_log"."module" IS '所属模块';
+COMMENT ON COLUMN "sys_log"."request_url" IS '请求URL';
+COMMENT ON COLUMN "sys_log"."request_method" IS '请求方式';
+COMMENT ON COLUMN "sys_log"."request_headers" IS '请求头';
+COMMENT ON COLUMN "sys_log"."request_body" IS '请求体';
+COMMENT ON COLUMN "sys_log"."status_code" IS '状态码';
+COMMENT ON COLUMN "sys_log"."response_headers" IS '响应头';
+COMMENT ON COLUMN "sys_log"."response_body" IS '响应体';
+COMMENT ON COLUMN "sys_log"."time_taken" IS '耗时(ms)';
+COMMENT ON COLUMN "sys_log"."ip" IS 'IP';
+COMMENT ON COLUMN "sys_log"."address" IS 'IP归属地';
+COMMENT ON COLUMN "sys_log"."browser" IS '浏览器';
+COMMENT ON COLUMN "sys_log"."os" IS '操作系统';
+COMMENT ON COLUMN "sys_log"."status" IS '状态(1:成功;2:失败)';
+COMMENT ON COLUMN "sys_log"."error_msg" IS '错误信息';
+COMMENT ON COLUMN "sys_log"."create_user" IS '创建人';
+COMMENT ON COLUMN "sys_log"."create_time" IS '创建时间';
+COMMENT ON TABLE "sys_log" IS '系统日志表';
+
+CREATE TABLE IF NOT EXISTS "sys_message" (
+ "id" int8 NOT NULL,
+ "title" varchar(50) NOT NULL,
+ "content" varchar(255) DEFAULT NULL,
+ "type" int2 NOT NULL DEFAULT 1,
+ "create_user" int8 DEFAULT NULL,
+ "create_time" timestamp NOT NULL,
+ PRIMARY KEY ("id")
+);
+COMMENT ON COLUMN "sys_message"."id" IS 'ID';
+COMMENT ON COLUMN "sys_message"."title" IS '标题';
+COMMENT ON COLUMN "sys_message"."content" IS '内容';
+COMMENT ON COLUMN "sys_message"."type" IS '类型(1:系统消息)';
+COMMENT ON COLUMN "sys_message"."create_user" IS '创建人';
+COMMENT ON COLUMN "sys_message"."create_time" IS '创建时间';
+COMMENT ON TABLE "sys_message" IS '消息表';
+
+CREATE TABLE IF NOT EXISTS "sys_message_user" (
+ "message_id" int8 NOT NULL,
+ "user_id" int8 NOT NULL,
+ "is_read" bool NOT NULL DEFAULT false,
+ "read_time" timestamp DEFAULT NULL,
+ PRIMARY KEY ("message_id", "user_id")
+);
+COMMENT ON COLUMN "sys_message_user"."message_id" IS '消息ID';
+COMMENT ON COLUMN "sys_message_user"."user_id" IS '用户ID';
+COMMENT ON COLUMN "sys_message_user"."is_read" IS '是否已读';
+COMMENT ON COLUMN "sys_message_user"."read_time" IS '读取时间';
+COMMENT ON TABLE "sys_message_user" IS '消息和用户关联表';
+
+CREATE TABLE IF NOT EXISTS "sys_announcement" (
+ "id" int8 NOT NULL,
+ "title" varchar(150) NOT NULL,
+ "content" text NOT NULL,
+ "type" varchar(30) NOT NULL,
+ "effective_time" timestamp DEFAULT NULL,
+ "terminate_time" timestamp DEFAULT NULL,
+ "sort" int4 NOT NULL DEFAULT 999,
+ "create_user" int8 NOT NULL,
+ "create_time" timestamp NOT NULL,
+ "update_user" int8 DEFAULT NULL,
+ "update_time" timestamp DEFAULT NULL,
+ PRIMARY KEY ("id")
+);
+CREATE INDEX "idx_announcement_create_user" ON "sys_announcement" ("create_user");
+CREATE INDEX "idx_announcement_update_user" ON "sys_announcement" ("update_user");
+COMMENT ON COLUMN "sys_announcement"."id" IS 'ID';
+COMMENT ON COLUMN "sys_announcement"."title" IS '标题';
+COMMENT ON COLUMN "sys_announcement"."content" IS '内容';
+COMMENT ON COLUMN "sys_announcement"."type" IS '类型';
+COMMENT ON COLUMN "sys_announcement"."effective_time" IS '生效时间';
+COMMENT ON COLUMN "sys_announcement"."terminate_time" IS '终止时间';
+COMMENT ON COLUMN "sys_announcement"."sort" IS '排序';
+COMMENT ON COLUMN "sys_announcement"."create_user" IS '创建人';
+COMMENT ON COLUMN "sys_announcement"."create_time" IS '创建时间';
+COMMENT ON COLUMN "sys_announcement"."update_user" IS '修改人';
+COMMENT ON COLUMN "sys_announcement"."update_time" IS '修改时间';
+COMMENT ON TABLE "sys_announcement" IS '公告表';
+
+CREATE TABLE IF NOT EXISTS "sys_storage" (
+ "id" int8 NOT NULL,
+ "name" varchar(100) NOT NULL,
+ "code" varchar(30) NOT NULL,
+ "type" int2 NOT NULL DEFAULT 1,
+ "access_key" varchar(255) DEFAULT NULL,
+ "secret_key" varchar(255) DEFAULT NULL,
+ "endpoint" varchar(255) DEFAULT NULL,
+ "bucket_name" varchar(255) DEFAULT NULL,
+ "domain" varchar(255) NOT NULL DEFAULT '',
+ "description" varchar(200) DEFAULT NULL,
+ "is_default" bool NOT NULL DEFAULT false,
+ "sort" int4 NOT NULL DEFAULT 999,
+ "status" int2 NOT NULL DEFAULT 1,
+ "create_user" int8 NOT NULL,
+ "create_time" timestamp NOT NULL,
+ "update_user" int8 DEFAULT NULL,
+ "update_time" timestamp DEFAULT NULL,
+ PRIMARY KEY ("id")
+);
+CREATE UNIQUE INDEX "uk_storage_code" ON "sys_storage" ("code");
+CREATE INDEX "idx_storage_create_user" ON "sys_storage" ("create_user");
+CREATE INDEX "idx_storage_update_user" ON "sys_storage" ("update_user");
+COMMENT ON COLUMN "sys_storage"."id" IS 'ID';
+COMMENT ON COLUMN "sys_storage"."name" IS '名称';
+COMMENT ON COLUMN "sys_storage"."code" IS '编码';
+COMMENT ON COLUMN "sys_storage"."type" IS '类型(1:兼容S3协议存储;2:本地存储)';
+COMMENT ON COLUMN "sys_storage"."access_key" IS 'Access Key(访问密钥)';
+COMMENT ON COLUMN "sys_storage"."secret_key" IS 'Secret Key(私有密钥)';
+COMMENT ON COLUMN "sys_storage"."endpoint" IS 'Endpoint(终端节点)';
+COMMENT ON COLUMN "sys_storage"."bucket_name" IS '桶名称';
+COMMENT ON COLUMN "sys_storage"."domain" IS '自定义域名';
+COMMENT ON COLUMN "sys_storage"."description" IS '描述';
+COMMENT ON COLUMN "sys_storage"."is_default" IS '是否为默认存储';
+COMMENT ON COLUMN "sys_storage"."sort" IS '排序';
+COMMENT ON COLUMN "sys_storage"."status" IS '状态(1:启用;2:禁用)';
+COMMENT ON COLUMN "sys_storage"."create_user" IS '创建人';
+COMMENT ON COLUMN "sys_storage"."create_time" IS '创建时间';
+COMMENT ON COLUMN "sys_storage"."update_user" IS '修改人';
+COMMENT ON COLUMN "sys_storage"."update_time" IS '修改时间';
+COMMENT ON TABLE "sys_storage" IS '存储库表';
+
+CREATE TABLE IF NOT EXISTS "sys_file" (
+ "id" int8 NOT NULL,
+ "name" varchar(255) NOT NULL,
+ "size" int8 NOT NULL,
+ "url" varchar(512) NOT NULL,
+ "extension" varchar(100) DEFAULT NULL,
+ "type" int2 NOT NULL DEFAULT 1,
+ "storage_id" int8 NOT NULL,
+ "create_user" int8 NOT NULL,
+ "create_time" timestamp NOT NULL,
+ "update_user" int8 NOT NULL,
+ "update_time" timestamp NOT NULL,
+ PRIMARY KEY ("id")
+);
+CREATE INDEX "idx_file_url" ON "sys_file" ("url");
+CREATE INDEX "idx_file_type" ON "sys_file" ("type");
+CREATE INDEX "idx_file_create_user" ON "sys_file" ("create_user");
+CREATE INDEX "idx_file_update_user" ON "sys_file" ("update_user");
+COMMENT ON COLUMN "sys_file"."id" IS 'ID';
+COMMENT ON COLUMN "sys_file"."name" IS '名称';
+COMMENT ON COLUMN "sys_file"."size" IS '大小(字节)';
+COMMENT ON COLUMN "sys_file"."url" IS 'URL';
+COMMENT ON COLUMN "sys_file"."extension" IS '扩展名';
+COMMENT ON COLUMN "sys_file"."type" IS '类型(1:其他;2:图片;3:文档;4:视频;5:音频)';
+COMMENT ON COLUMN "sys_file"."storage_id" IS '存储库ID';
+COMMENT ON COLUMN "sys_file"."create_user" IS '创建人';
+COMMENT ON COLUMN "sys_file"."create_time" IS '创建时间';
+COMMENT ON COLUMN "sys_file"."update_user" IS '修改人';
+COMMENT ON COLUMN "sys_file"."update_time" IS '修改时间';
+COMMENT ON TABLE "sys_file" IS '文件表';
+
+CREATE TABLE IF NOT EXISTS "gen_config" (
+ "table_name" varchar(64) NOT NULL,
+ "module_name" varchar(60) NOT NULL,
+ "package_name" varchar(60) NOT NULL,
+ "frontend_path" varchar(255) DEFAULT NULL,
+ "business_name" varchar(50) NOT NULL,
+ "author" varchar(100) NOT NULL,
+ "table_prefix" varchar(20) DEFAULT NULL,
+ "is_override" bool NOT NULL DEFAULT false,
+ "create_time" timestamp NOT NULL,
+ "update_time" timestamp DEFAULT NULL,
+ PRIMARY KEY ("table_name")
+);
+COMMENT ON COLUMN "gen_config"."table_name" IS '表名称';
+COMMENT ON COLUMN "gen_config"."module_name" IS '模块名称';
+COMMENT ON COLUMN "gen_config"."package_name" IS '包名称';
+COMMENT ON COLUMN "gen_config"."frontend_path" IS '前端路径';
+COMMENT ON COLUMN "gen_config"."business_name" IS '业务名称';
+COMMENT ON COLUMN "gen_config"."author" IS '作者';
+COMMENT ON COLUMN "gen_config"."table_prefix" IS '表前缀';
+COMMENT ON COLUMN "gen_config"."is_override" IS '是否覆盖';
+COMMENT ON COLUMN "gen_config"."create_time" IS '创建时间';
+COMMENT ON COLUMN "gen_config"."update_time" IS '修改时间';
+COMMENT ON TABLE "gen_config" IS '生成配置表';
+
+CREATE TABLE IF NOT EXISTS "gen_field_config" (
+ "table_name" varchar(64) NOT NULL,
+ "column_name" varchar(64) NOT NULL,
+ "column_type" varchar(25) NOT NULL,
+ "column_size" int8 DEFAULT NULL,
+ "field_name" varchar(64) NOT NULL,
+ "field_type" varchar(25) NOT NULL,
+ "comment" varchar(512) DEFAULT NULL,
+ "is_required" bool NOT NULL DEFAULT true,
+ "show_in_list" bool NOT NULL DEFAULT true,
+ "show_in_form" bool NOT NULL DEFAULT true,
+ "show_in_query" bool NOT NULL DEFAULT true,
+ "form_type" int2 DEFAULT NULL,
+ "query_type" int2 DEFAULT NULL,
+ "create_time" timestamp NOT NULL
+);
+CREATE INDEX "idx_field_config_table_name" ON "gen_field_config" ("table_name");
+COMMENT ON COLUMN "gen_field_config"."table_name" IS '表名称';
+COMMENT ON COLUMN "gen_field_config"."column_name" IS '列名称';
+COMMENT ON COLUMN "gen_field_config"."column_type" IS '列类型';
+COMMENT ON COLUMN "gen_field_config"."column_size" IS '列大小';
+COMMENT ON COLUMN "gen_field_config"."field_name" IS '字段名称';
+COMMENT ON COLUMN "gen_field_config"."field_type" IS '字段类型';
+COMMENT ON COLUMN "gen_field_config"."comment" IS '注释';
+COMMENT ON COLUMN "gen_field_config"."is_required" IS '是否必填';
+COMMENT ON COLUMN "gen_field_config"."show_in_list" IS '是否在列表中显示';
+COMMENT ON COLUMN "gen_field_config"."show_in_form" IS '是否在表单中显示';
+COMMENT ON COLUMN "gen_field_config"."show_in_query" IS '是否在查询中显示';
+COMMENT ON COLUMN "gen_field_config"."form_type" IS '表单类型';
+COMMENT ON COLUMN "gen_field_config"."query_type" IS '查询方式';
+COMMENT ON COLUMN "gen_field_config"."create_time" IS '创建时间';
+COMMENT ON TABLE "gen_field_config" IS '字段配置表';
\ No newline at end of file