mirror of
https://gitee.com/dromara/dbswitch.git
synced 2025-10-15 14:20:25 +00:00
补充h2遗漏的统计SQL
This commit is contained in:
16
README.md
16
README.md
@@ -103,6 +103,14 @@ sh ./docker-maven-build.sh
|
||||
|
||||
(2) docker容器方式部署:
|
||||
|
||||
- H2做配置库部署
|
||||
|
||||
这里将宿主机的/tmp目录挂载到容器上:
|
||||
```
|
||||
docker run -d --name dbswitch -e DBTYPE=h2 -v /tmp:/tmp -p 9088:9088 \
|
||||
registry.cn-hangzhou.aliyuncs.com/inrgihc/dbswitch:latest
|
||||
```
|
||||
|
||||
- MYSQL做配置库部署
|
||||
|
||||
假设已经部署好的MySQL(5.7+)数据库地址为192.168.31.57,端口为3306,账号为test,密码为123456
|
||||
@@ -293,9 +301,9 @@ dbswitch.target.writer-engine-insert=true
|
||||
|
||||
### 2、基于conf/application.yml配置的dbswitch-admin模块启动的WEB使用方式
|
||||
|
||||
#### (1)、准备一个MySQL(建议版本为: 5.7+ )或PostgreSQL(建议版本:11.7+ )或者OpenGauss(建议版本:5.0+ )的数据库
|
||||
#### (1)、如果使用默认配置的H2数据库可忽略本步骤,否则准备一个MySQL(建议版本为: 5.7+ )或PostgreSQL(建议版本:11.7+ )或者OpenGauss(建议版本:5.0+ )的数据库
|
||||
|
||||
> dbswitch-admin模块后端同时支持MySQL、PostgreSQL、OpenGauss作为配置数据库。
|
||||
> dbswitch-admin模块后端同时支持H2、MySQL、PostgreSQL、OpenGauss作为配置数据库。
|
||||
|
||||
#### (2)、配置conf/application.yml
|
||||
|
||||
@@ -304,9 +312,9 @@ application.yml配置内容示例如下:
|
||||
```
|
||||
spring:
|
||||
profiles:
|
||||
# 配置包含使用的配置库类型(可选值:mysql或postgres),对应在application-mysql.yml或application-postgres.yml中配置数据库信息
|
||||
# 配置包含使用的配置库类型(可选值:h2或mysql或postgres),对应在application-h2.yml或application-mysql.yml或application-postgres.yml中配置数据库信息
|
||||
# 如果使用OpenGauss作为配置数据库,请配置为postgres类型,dbswitch会使用postgres的jdbc驱动连接OpenGauss
|
||||
include: mysql
|
||||
include: h2
|
||||
application:
|
||||
name: dbswitch-admin
|
||||
tomcat:
|
||||
|
@@ -32,4 +32,5 @@ cd $PROJECT_ROOT_DIR && sh docker-maven-clean.sh && cd -
|
||||
# push docker image
|
||||
docker tag inrgihc/dbswitch:${DBSWITCH_VERSION} registry.cn-hangzhou.aliyuncs.com/inrgihc/dbswitch:${DBSWITCH_VERSION}
|
||||
docker push registry.cn-hangzhou.aliyuncs.com/inrgihc/dbswitch:${DBSWITCH_VERSION}
|
||||
|
||||
docker tag inrgihc/dbswitch:${DBSWITCH_VERSION} registry.cn-hangzhou.aliyuncs.com/inrgihc/dbswitch:latest
|
||||
docker push registry.cn-hangzhou.aliyuncs.com/inrgihc/dbswitch:latest
|
||||
|
@@ -0,0 +1,13 @@
|
||||
spring:
|
||||
datasource:
|
||||
driver-class-name: org.h2.Driver
|
||||
url: jdbc:h2:/tmp/dbswitch_db;MODE=MySQL;CASE_INSENSITIVE_IDENTIFIERS=TRUE;DATABASE_TO_UPPER=FALSE;DATABASE_TO_LOWER=FALSE
|
||||
username: root
|
||||
password: 123456
|
||||
validation-query: SELECT 1
|
||||
test-on-borrow: true
|
||||
flyway:
|
||||
locations: classpath:db/h2
|
||||
baseline-on-migrate: true
|
||||
table: DBSWITCH_SCHEMA_HISTORY
|
||||
enabled: true
|
@@ -1,6 +1,6 @@
|
||||
spring:
|
||||
profiles:
|
||||
include: ${DBTYPE:mysql}
|
||||
include: ${DBTYPE:h2}
|
||||
application:
|
||||
name: dbswitch-admin
|
||||
tomcat:
|
||||
|
@@ -31,6 +31,7 @@ public class DbswitchConfig {
|
||||
Properties props = new Properties();
|
||||
props.setProperty("PostgreSQL", "postgresql");
|
||||
props.setProperty("MySQL", "mysql");
|
||||
props.setProperty("H2", "h2");
|
||||
databaseIdProvider.setProperties(props);
|
||||
return databaseIdProvider;
|
||||
}
|
||||
|
@@ -22,28 +22,39 @@ public interface AssignmentJobMapper extends BaseMapper<AssignmentJobEntity> {
|
||||
|
||||
@Select("<script>"
|
||||
+ "<if test='_databaseId == \"mysql\" '>"
|
||||
+ " SELECT \n"
|
||||
+ " \t DATE_FORMAT(create_time,'%Y-%m-%d') as of_date , \n"
|
||||
+ " \t count(*) as count_of_job,\n"
|
||||
+ " \t count(DISTINCT assignment_id) as count_of_task \n"
|
||||
+ " FROM \n"
|
||||
+ " ( \n"
|
||||
+ " \t SELECT * FROM DBSWITCH_ASSIGNMENT_JOB\n"
|
||||
+ " \t WHERE DATE_SUB( CURDATE(), INTERVAL ${days} DAY ) <= date(create_time)\n"
|
||||
+ " ) t \n"
|
||||
+ " SELECT "
|
||||
+ " DATE_FORMAT(create_time,'%Y-%m-%d') as of_date , "
|
||||
+ " count(*) as count_of_job, "
|
||||
+ " count(DISTINCT assignment_id) as count_of_task "
|
||||
+ " FROM "
|
||||
+ " ( "
|
||||
+ " SELECT * FROM DBSWITCH_ASSIGNMENT_JOB "
|
||||
+ " WHERE DATE_SUB( CURDATE(), INTERVAL ${days} DAY ) <![CDATA[ <= ]]> date(create_time) "
|
||||
+ " ) t "
|
||||
+ " GROUP BY of_date "
|
||||
+ "</if>"
|
||||
+ "<if test='_databaseId == \"postgresql\" '>"
|
||||
+ " SELECT \n"
|
||||
+ " \t to_char(create_time, 'YYYY-MM-DD') as of_date , \n"
|
||||
+ " \t count(*) as count_of_job,\n"
|
||||
+ " \t count(DISTINCT assignment_id) as count_of_task \n"
|
||||
+ " FROM \n"
|
||||
+ " ( \n"
|
||||
+ " \t SELECT * FROM DBSWITCH_ASSIGNMENT_JOB\n"
|
||||
+ " \t WHERE CURRENT_DATE - INTERVAL'${days} day' <= create_time::date\n"
|
||||
+ " ) t \n"
|
||||
+ " GROUP BY of_date; "
|
||||
+ " SELECT "
|
||||
+ " to_char(create_time, 'YYYY-MM-DD') as of_date , "
|
||||
+ " count(*) as count_of_job, "
|
||||
+ " count(DISTINCT assignment_id) as count_of_task "
|
||||
+ " FROM "
|
||||
+ " ( "
|
||||
+ " SELECT * FROM DBSWITCH_ASSIGNMENT_JOB "
|
||||
+ " WHERE CURRENT_DATE - INTERVAL'${days} day' <![CDATA[ <= ]]> create_time::date "
|
||||
+ " ) t "
|
||||
+ " GROUP BY of_date "
|
||||
+ "</if>"
|
||||
+ "<if test='_databaseId == \"h2\" '>"
|
||||
+ " SELECT "
|
||||
+ " CAST(create_time as DATE) AS of_date, "
|
||||
+ " COUNT(*) AS count_of_job, "
|
||||
+ " COUNT(DISTINCT assignment_id) AS count_of_task "
|
||||
+ " FROM ( "
|
||||
+ " SELECT * FROM DBSWITCH_ASSIGNMENT_JOB "
|
||||
+ " WHERE CAST(create_time as DATE) <![CDATA[ >= ]]> ( CURDATE()- ${days} ) "
|
||||
+ ") t "
|
||||
+ " GROUP BY of_date "
|
||||
+ "</if>"
|
||||
+ "</script>")
|
||||
@Results({
|
||||
|
@@ -18,10 +18,13 @@ public interface JobLogbackMapper extends BaseMapper<JobLogbackEntity> {
|
||||
|
||||
@Delete("<script>"
|
||||
+ "<if test='_databaseId == \"mysql\" '>"
|
||||
+ "DELETE FROM DBSWITCH_JOB_LOGBACK WHERE date(create_time) < DATE_SUB( CURDATE(), INTERVAL ${days} DAY )"
|
||||
+ "DELETE FROM DBSWITCH_JOB_LOGBACK WHERE date(create_time) <![CDATA[ <= ]]> DATE_SUB( CURDATE(), INTERVAL ${days} DAY )"
|
||||
+ "</if>"
|
||||
+ "<if test='_databaseId == \"postgresql\" '>"
|
||||
+ "DELETE FROM DBSWITCH_JOB_LOGBACK WHERE create_time::date < CURRENT_DATE - INTERVAL'${days} day'"
|
||||
+ "DELETE FROM DBSWITCH_JOB_LOGBACK WHERE create_time::date <![CDATA[ <= ]]> CURRENT_DATE - INTERVAL'${days} day'"
|
||||
+ "</if>"
|
||||
+ "<if test='_databaseId == \"h2\" '>"
|
||||
+ "DELETE FROM DBSWITCH_JOB_LOGBACK WHERE CAST(create_time as DATE) <![CDATA[ <= ]]> (CURDATE() - ${days})"
|
||||
+ "</if>"
|
||||
+ "</script>")
|
||||
void deleteByDays(@Param("days") Integer days);
|
||||
|
Reference in New Issue
Block a user