Browse Source

!958 ✨ 测试数据库docker-compose, postgres DDL更新
Merge pull request !958 from dhb52/feature/db

芋道源码 2 years ago
parent
commit
56de8b0135

+ 5 - 0
sql/_docker/oracle/1_create_user.sql

@@ -0,0 +1,5 @@
+ALTER SESSION SET CONTAINER=XEPDB1;
+
+CREATE USER ROOT IDENTIFIED BY 123456 QUOTA UNLIMITED ON USERS;
+
+GRANT CONNECT, RESOURCE TO ROOT;

+ 1 - 0
sql/_docker/oracle/2_create_schema.sh

@@ -0,0 +1 @@
+sqlplus -s ROOT/123456@//localhost/XEPDB1 @/tmp/schema.sql

+ 5 - 0
sql/_docker/sqlserver/create_schema.sh

@@ -0,0 +1,5 @@
+#!/usr/bin/env bash
+
+/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P 'Yudao@24' -Q "CREATE DATABASE [ruoyi-vue-pro];
+GO"
+/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P 'Yudao@24' -d 'ruoyi-vue-pro' -i /tmp/schema.sql

+ 70 - 0
sql/docker-compose.yaml

@@ -0,0 +1,70 @@
+name: ruoyi-vue-pro
+
+volumes:
+    mysql: { }
+    postgres: { }
+    sqlserver: { }
+
+services:
+    mysql:
+        image: mysql:8.0.33
+        restart: unless-stopped
+        environment:
+            TZ: Asia/Shanghai
+            MYSQL_ROOT_PASSWORD: 123456
+            MYSQL_DATABASE: ruoyi-vue-pro
+        ports:
+            - "3306:3306"
+        volumes:
+            - mysql:/var/lib/mysql/
+            # 注入初始化脚本
+            - ./mysql/ruoyi-vue-pro.sql:/docker-entrypoint-initdb.d/init.sql:ro
+        command:
+            --default-authentication-plugin=mysql_native_password
+            --character-set-server=utf8mb4
+            --collation-server=utf8mb4_general_ci
+            --explicit_defaults_for_timestamp=true
+            --lower_case_table_names=1
+
+    postgres:
+        image: postgres:14.2
+        restart: unless-stopped
+        environment:
+            POSTGRES_USER: root
+            POSTGRES_PASSWORD: 123456
+            POSTGRES_DB: ruoyi-vue-pro
+        ports:
+            - "5432:5432"
+        volumes:
+            - postgres:/var/lib/postgresql/data
+            # 注入初始化脚本
+            - ./postgresql/quartz.sql:/docker-entrypoint-initdb.d/quartz.sql:ro
+            - ./postgresql/ruoyi-vue-pro.sql:/docker-entrypoint-initdb.d/ruoyi-vue-pro.sql:ro
+
+    oracle:
+        image: gvenzl/oracle-xe:18-slim-faststart
+        environment:
+            ## 登录信息 SID: XE user: system password: oracle
+            ORACLE_PASSWORD: oracle
+        ports:
+            - "1521:1521"
+        volumes:
+            - ./oracle/ruoyi-vue-pro.sql:/tmp/schema.sql:ro
+            # 创建app用户: ROOT/123456@//localhost/XEPDB1
+            - ./_docker/oracle/1_create_user.sql:/docker-entrypoint-initdb.d/1_create_user.sql:ro
+            - ./_docker/oracle/2_create_schema.sh:/docker-entrypoint-initdb.d/2_create_schema.sh:ro
+
+    sqlserver:
+        image: mcr.microsoft.com/mssql/server:2017-latest
+        restart: unless-stopped
+        environment:
+            TZ: Asia/Shanghai
+            ACCEPT_EULA: "Y"
+            SA_PASSWORD: "Yudao@24"
+        ports:
+            - "1433:1433"
+        volumes:
+            - sqlserver:/var/opt/mssql
+            - ./sqlserver/ruoyi-vue-pro.sql:/tmp/schema.sql:ro
+            # docker compose exec sqlserver bash /tmp/create_schema.sh
+            - ./_docker/sqlserver/create_schema.sh:/tmp/create_schema.sh:ro

+ 2 - 4
sql/mysql/ruoyi-vue-pro.sql

@@ -1276,8 +1276,7 @@ CREATE TABLE `system_dict_type`  (
   `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
   `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
   `deleted_time` datetime NULL DEFAULT NULL COMMENT '删除时间',
-  PRIMARY KEY (`id`) USING BTREE,
-  UNIQUE INDEX `dict_type`(`type` ASC) USING BTREE
+  PRIMARY KEY (`id`) USING BTREE
 ) ENGINE = InnoDB AUTO_INCREMENT = 620 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '字典类型表';
 
 -- ----------------------------
@@ -5493,8 +5492,7 @@ CREATE TABLE `system_users`  (
   `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
   `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
   `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
-  PRIMARY KEY (`id`) USING BTREE,
-  UNIQUE INDEX `idx_username`(`username` ASC, `update_time` ASC, `tenant_id` ASC) USING BTREE
+  PRIMARY KEY (`id`) USING BTREE
 ) ENGINE = InnoDB AUTO_INCREMENT = 131 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户信息表';
 
 -- ----------------------------

File diff suppressed because it is too large
+ 292 - 0
sql/postgresql/quartz.sql


File diff suppressed because it is too large
+ 5826 - 7200
sql/postgresql/ruoyi-vue-pro.sql


+ 20 - 20
yudao-server/src/main/resources/application-local.yaml

@@ -39,38 +39,38 @@ spring:
         time-between-eviction-runs-millis: 60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位:毫秒
         min-evictable-idle-time-millis: 300000 # 配置一个连接在池中最小生存的时间,单位:毫秒
         max-evictable-idle-time-millis: 900000 # 配置一个连接在池中最大生存的时间,单位:毫秒
-        validation-query: SELECT 1 FROM DUAL # 配置检测连接是否有效
+#        validation-query: SELECT 1 FROM DUAL # 配置检测连接是否有效, 不同数据库有所不同, 建议mysql以外的先注释掉
         test-while-idle: true
         test-on-borrow: false
         test-on-return: false
       primary: master
       datasource:
         master:
-          name: ruoyi-vue-pro
-          url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.master.name}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例
-          #          url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.master.name}?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT # MySQL Connector/J 5.X 连接的示例
-          #          url: jdbc:postgresql://127.0.0.1:5432/${spring.datasource.dynamic.datasource.master.name} # PostgreSQL 连接的示例
-          #          url: jdbc:oracle:thin:@127.0.0.1:1521:xe # Oracle 连接的示例
-          #          url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=${spring.datasource.dynamic.datasource.master.name} # SQLServer 连接的示例
-          #          url: jdbc:dm://10.211.55.4:5236?schema=RUOYI_VUE_PRO # DM 连接的示例
+#          url: jdbc:mysql://127.0.0.1:3306/ruoyi-vue-pro?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例
+#          url: jdbc:mysql://127.0.0.1:3306/ruoyi-vue-pro?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT # MySQL Connector/J 5.X 连接的示例
+          url: jdbc:postgresql://127.0.0.1:5432/ruoyi-vue-pro?useUnicode=true&characterEncoding=utf8&useSSL=true&autoReconnect=true&reWriteBatchedInserts=true # PostgreSQL 连接的示例
+#          url: jdbc:oracle:thin:@127.0.0.1:1521:XEPDB1 # Oracle 连接的示例
+#          url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=ruoyi-vue-pro # SQLServer 连接的示例
+#          url: jdbc:dm://10.211.55.4:5236?schema=RUOYI_VUE_PRO # DM 连接的示例
           username: root
           password: 123456
-        #          username: sa
-        #          password: JSm:g(*%lU4ZAkz06cd52KqT3)i1?H7W
-        #          username: SYSDBA # DM 连接的示例
-        #          password: SYSDBA # DM 连接的示例
+#          username: sa       # SQLServer 连接的示例
+#          password: Yudao@24 # SQLServer 连接的示例
+#          username: SYSDBA # DM 连接的示例
+#          password: SYSDBA # DM 连接的示例
         slave: # 模拟从库,可根据自己需要修改
-          name: ruoyi-vue-pro
           lazy: true # 开启懒加载,保证启动速度
-          url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.slave.name}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例
-          #          url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.slave.name}?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT # MySQL Connector/J 5.X 连接的示例
-          #          url: jdbc:postgresql://127.0.0.1:5432/${spring.datasource.dynamic.datasource.slave.name} # PostgreSQL 连接的示例
-          #          url: jdbc:oracle:thin:@127.0.0.1:1521:xe # Oracle 连接的示例
-          #          url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=${spring.datasource.dynamic.datasource.slave.name} # SQLServer 连接的示例
+#          url: jdbc:mysql://127.0.0.1:3306/ruoyi-vue-pro?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例
+#          url: jdbc:mysql://127.0.0.1:3306/ruoyi-vue-pro?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT # MySQL Connector/J 5.X 连接的示例
+#          url: jdbc:postgresql://127.0.0.1:5432/ruoyi-vue-pro # PostgreSQL 连接的示例
+#          url: jdbc:oracle:thin:@127.0.0.1:1521:XEPDB1 # Oracle 连接的示例
+#          url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=ruoyi-vue-pro # SQLServer 连接的示例
           username: root
           password: 123456
-  #          username: sa
-  #          password: JSm:g(*%lU4ZAkz06cd52KqT3)i1?H7W
+         # username: sa       # SQLServer 连接的示例
+         # password: Yudao@24 # SQLServer 连接的示例
+         # username: SYSDBA # DM 连接的示例
+         # password: SYSDBA # DM 连接的示例
 
   # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优
   data: