Commit 65651fb1ede4731a15cc496e2ec7deb37647fae0

Authored by dhb52
1 parent 77408250

feat: 创建虚拟dual表,达梦脚本优化

sql/postgresql/ruoyi-vue-pro.sql
@@ -5,11 +5,20 @@ @@ -5,11 +5,20 @@
5 5
6 Target Server Type : PostgreSQL 6 Target Server Type : PostgreSQL
7 7
8 - Date: 2024-05-01 23:25:45 8 + Date: 2024-05-03 23:36:19
9 */ 9 */
10 10
11 11
12 -- ---------------------------- 12 -- ----------------------------
  13 +-- Table structure for dual
  14 +-- ----------------------------
  15 +DROP TABLE IF EXISTS dual;
  16 +CREATE TABLE dual
  17 +(
  18 +);
  19 +
  20 +
  21 +-- ----------------------------
13 -- Table structure for infra_api_access_log 22 -- Table structure for infra_api_access_log
14 -- ---------------------------- 23 -- ----------------------------
15 DROP TABLE IF EXISTS infra_api_access_log; 24 DROP TABLE IF EXISTS infra_api_access_log;
@@ -3866,7 +3875,6 @@ COMMENT ON COLUMN system_sms_code.updater IS '更新者'; @@ -3866,7 +3875,6 @@ COMMENT ON COLUMN system_sms_code.updater IS '更新者';
3866 COMMENT ON COLUMN system_sms_code.update_time IS '更新时间'; 3875 COMMENT ON COLUMN system_sms_code.update_time IS '更新时间';
3867 COMMENT ON COLUMN system_sms_code.deleted IS '是否删除'; 3876 COMMENT ON COLUMN system_sms_code.deleted IS '是否删除';
3868 COMMENT ON COLUMN system_sms_code.tenant_id IS '租户编号'; 3877 COMMENT ON COLUMN system_sms_code.tenant_id IS '租户编号';
3869 -COMMENT ON COLUMN system_sms_code.idx_mobile IS '手机号';  
3870 COMMENT ON TABLE system_sms_code IS '手机验证码'; 3878 COMMENT ON TABLE system_sms_code IS '手机验证码';
3871 3879
3872 DROP SEQUENCE IF EXISTS system_sms_code_seq; 3880 DROP SEQUENCE IF EXISTS system_sms_code_seq;
@@ -4703,3 +4711,4 @@ COMMIT; @@ -4703,3 +4711,4 @@ COMMIT;
4703 DROP SEQUENCE IF EXISTS yudao_demo03_student_seq; 4711 DROP SEQUENCE IF EXISTS yudao_demo03_student_seq;
4704 CREATE SEQUENCE yudao_demo03_student_seq 4712 CREATE SEQUENCE yudao_demo03_student_seq
4705 START 10; 4713 START 10;
  4714 +
sql/sqlserver/ruoyi-vue-pro.sql
@@ -5,11 +5,30 @@ @@ -5,11 +5,30 @@
5 5
6 Target Server Type : Microsoft SQL Server 6 Target Server Type : Microsoft SQL Server
7 7
8 - Date: 2024-05-02 15:29:31 8 + Date: 2024-05-03 23:36:38
9 */ 9 */
10 10
11 11
12 -- ---------------------------- 12 -- ----------------------------
  13 +-- Table structure for dual
  14 +-- ----------------------------
  15 +DROP TABLE IF EXISTS dual
  16 +GO
  17 +
  18 +CREATE TABLE dual
  19 +(
  20 + id int NULL
  21 +)
  22 +GO
  23 +
  24 +EXEC sp_addextendedproperty
  25 + 'MS_Description', N'数据库连接的表',
  26 + 'SCHEMA', N'dbo',
  27 + 'TABLE', N'dual'
  28 +GO
  29 +
  30 +
  31 +-- ----------------------------
13 -- Table structure for infra_api_access_log 32 -- Table structure for infra_api_access_log
14 -- ---------------------------- 33 -- ----------------------------
15 DROP TABLE IF EXISTS infra_api_access_log; 34 DROP TABLE IF EXISTS infra_api_access_log;
sql/tools/README.md
@@ -54,7 +54,8 @@ docker load -i dm8_20230808_rev197096_x86_rh6_64_single.tar @@ -54,7 +54,8 @@ docker load -i dm8_20230808_rev197096_x86_rh6_64_single.tar
54 ```Bash 54 ```Bash
55 docker compose up -d dm8 55 docker compose up -d dm8
56 # 注意:启动完 sqlserver 后,需要手动再执行如下命令,因为 SQL Server 不支持初始化脚本 56 # 注意:启动完 sqlserver 后,需要手动再执行如下命令,因为 SQL Server 不支持初始化脚本
57 -docker compose exec -i dm8 /bin/bash -c "exec /opt/dmdbms/bin/disql SYSDBA/SYSDBA001 \`/tmp/schema.sql" 57 +docker compose exec dm8 bash -c "exec /opt/dmdbms/bin/disql SYSDBA/SYSDBA001 \`/tmp/schema.sql"
  58 +exit
58 ``` 59 ```
59 60
60 **注意**: `sql/dm/ruoyi-vue-pro-dm8.sql`文件编码必须为`GBK`或者`GBK`超集 61 **注意**: `sql/dm/ruoyi-vue-pro-dm8.sql`文件编码必须为`GBK`或者`GBK`超集
sql/tools/convertor.py
@@ -134,6 +134,14 @@ class Convertor(ABC): @@ -134,6 +134,14 @@ class Convertor(ABC):
134 """ 134 """
135 pass 135 pass
136 136
  137 + def gen_dual(self) -> str:
  138 + """生成虚拟 dual 表
  139 +
  140 + Returns:
  141 + str: 生成脚本, 默认返回空脚本, 表示当前数据库无需手工创建
  142 + """
  143 + return ""
  144 +
137 @staticmethod 145 @staticmethod
138 def inserts(table_name: str, script_content: str) -> Generator: 146 def inserts(table_name: str, script_content: str) -> Generator:
139 PREFIX = f"INSERT INTO `{table_name}`" 147 PREFIX = f"INSERT INTO `{table_name}`"
@@ -192,6 +200,17 @@ class Convertor(ABC): @@ -192,6 +200,17 @@ class Convertor(ABC):
192 ) 200 )
193 ) 201 )
194 202
  203 + dual = self.gen_dual()
  204 + if dual:
  205 + print(
  206 + f"""-- ----------------------------
  207 +-- Table structure for dual
  208 +-- ----------------------------
  209 +{dual}
  210 +
  211 +"""
  212 + )
  213 +
195 error_scripts = [] 214 error_scripts = []
196 for table_sql in self.table_script_list: 215 for table_sql in self.table_script_list:
197 ddl = DDLParser(table_sql.replace("`", "")).run() 216 ddl = DDLParser(table_sql.replace("`", "")).run()
@@ -348,6 +367,12 @@ CREATE SEQUENCE {table_name}_seq @@ -348,6 +367,12 @@ CREATE SEQUENCE {table_name}_seq
348 367
349 return script 368 return script
350 369
  370 + def gen_dual(self) -> str:
  371 + return """DROP TABLE IF EXISTS dual;
  372 +CREATE TABLE dual
  373 +(
  374 +);"""
  375 +
351 376
352 class OracleConvertor(Convertor): 377 class OracleConvertor(Convertor):
353 def __init__(self, src): 378 def __init__(self, src):
@@ -605,6 +630,22 @@ GO @@ -605,6 +630,22 @@ GO
605 630
606 return script 631 return script
607 632
  633 + def gen_dual(self) -> str:
  634 + return """DROP TABLE IF EXISTS dual
  635 +GO
  636 +
  637 +CREATE TABLE dual
  638 +(
  639 + id int NULL
  640 +)
  641 +GO
  642 +
  643 +EXEC sp_addextendedproperty
  644 + 'MS_Description', N'数据库连接的表',
  645 + 'SCHEMA', N'dbo',
  646 + 'TABLE', N'dual'
  647 +GO"""
  648 +
608 649
609 class DM8Convertor(Convertor): 650 class DM8Convertor(Convertor):
610 def __init__(self, src): 651 def __init__(self, src):
sql/tools/docker-compose.yaml
@@ -91,4 +91,4 @@ services: @@ -91,4 +91,4 @@ services:
91 volumes: 91 volumes:
92 - dm8:/opt/dmdbms/data 92 - dm8:/opt/dmdbms/data
93 - ../dm/ruoyi-vue-pro-dm8.sql:/tmp/schema.sql:ro 93 - ../dm/ruoyi-vue-pro-dm8.sql:/tmp/schema.sql:ro
94 - # docker compose exec -i dm8 /bin/bash -c "exec /opt/dmdbms/bin/disql SYSDBA/SYSDBA001 \`/tmp/schema.sql" 94 + # docker compose exec dm8 bash -c "exec /opt/dmdbms/bin/disql SYSDBA/SYSDBA001 \`/tmp/schema.sql"