新增MySQL和pg数据库的同步

This commit is contained in:
2025-08-27 11:52:29 +08:00
parent 8cb24c7c68
commit a44aa592af
3 changed files with 92 additions and 19 deletions

View File

@@ -15,7 +15,7 @@ import lombok.Setter;
* </p>
*
* @author gaoxq
* @since 2025-08-26
* @since 2025-08-27
*/
@Getter
@Setter
@@ -24,39 +24,81 @@ public class DbConfig implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 记录创建时间
*/
@TableField("create_time")
private LocalDateTime createTime;
/**
* 数据库配置唯一标识
*/
@TableId(value = "db_id", type = IdType.AUTO)
private String dbId;
/**
* 数据库类型如mysql、oracle、postgresql等
*/
@TableField("db_type")
private String dbType;
/**
* 数据库名称
*/
@TableField("db_name")
private String dbName;
@TableField("host")
private String host;
/**
* 数据库默认SchemaPostgresSQL特有如public、ods、dw等为空时默认用public
*/
@TableField("db_schema")
private String dbSchema;
@TableField("port")
private Integer port;
/**
* 数据库主机地址
*/
@TableField("db_host")
private String dbHost;
@TableField("username")
private String username;
/**
* 数据库端口号
*/
@TableField("db_port")
private Integer dbPort;
@TableField("password")
private String password;
/**
* 数据库登录用户名
*/
@TableField("link_username")
private String linkUsername;
/**
* 数据库登录密码
*/
@TableField("link_password")
private String linkPassword;
/**
* 数据库驱动类全路径
*/
@TableField("driver_class")
private String driverClass;
/**
* 数据库连接URL模板
*/
@TableField("url_template")
private String urlTemplate;
/**
* 是否激活(可用状态标识)
*/
@TableField("is_active")
private String isActive;
/**
* 记录最后更新时间
*/
@TableField("update_time")
private LocalDateTime updateTime;
@@ -83,12 +125,4 @@ public class DbConfig implements Serializable {
*/
@TableField("f_flow_state")
private Integer fFlowState;
// 生成数据库连接URL
public String getJdbcUrl() {
return urlTemplate.replace("{host}", host)
.replace("{port}", port.toString())
.replace("{dbName}", dbName);
}
}

View File

@@ -15,7 +15,7 @@ import lombok.Setter;
* </p>
*
* @author gaoxq
* @since 2025-08-26
* @since 2025-08-27
*/
@Getter
@Setter
@@ -24,42 +24,81 @@ public class SyncTask implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 记录创建时间
*/
@TableField("create_time")
private LocalDateTime createTime;
/**
* 同步任务唯一标识
*/
@TableId(value = "task_id", type = IdType.AUTO)
private String taskId;
/**
* 同步任务名称
*/
@TableField("task_name")
private String taskName;
/**
* 源数据库配置ID关联biz_db_config表
*/
@TableField("source_db_id")
private String sourceDbId;
/**
* 目标数据库配置ID关联biz_db_config表
*/
@TableField("target_db_id")
private String targetDbId;
/**
* 源数据库表名
*/
@TableField("source_table")
private String sourceTable;
/**
* 目标数据库表名
*/
@TableField("target_table")
private String targetTable;
/**
* 同步类型(如全量同步、增量同步等)
*/
@TableField("sync_type")
private String syncType;
/**
* 增量同步字段(用于增量同步时的判断依据)
*/
@TableField("increment_column")
private String incrementColumn;
/**
* 定时任务表达式( cron表达式
*/
@TableField("cron_expression")
private String cronExpression;
/**
* 是否激活(任务启用状态标识)
*/
@TableField("is_active")
private String isActive;
/**
* 最后一次同步时间
*/
@TableField("last_sync_time")
private LocalDateTime lastSyncTime;
/**
* 记录最后更新时间
*/
@TableField("update_time")
private LocalDateTime updateTime;

View File

@@ -11,7 +11,7 @@ import java.util.Collections;
public class demo {
public static void main(String[] args) {
FastAutoGenerator.create("jdbc:mysql://192.168.31.189:33069/work?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC", "dream", "info_dream")
FastAutoGenerator.create("jdbc:mysql://crontab.club:33069/work?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC", "dream", "info_dream")
.globalConfig(builder -> {
builder.author("gaoxq")
.outputDir(System.getProperty("user.dir") + "/src/main/java")