| New file |
| | |
| | | The MIT License (MIT) |
| | | |
| | | Copyright (c) 2016 GongDexing |
| | | |
| | | Permission is hereby granted, free of charge, to any person obtaining a copy |
| | | of this software and associated documentation files (the "Software"), to deal |
| | | in the Software without restriction, including without limitation the rights |
| | | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
| | | copies of the Software, and to permit persons to whom the Software is |
| | | furnished to do so, subject to the following conditions: |
| | | |
| | | The above copyright notice and this permission notice shall be included in all |
| | | copies or substantial portions of the Software. |
| | | |
| | | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
| | | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
| | | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
| | | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
| | | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
| | | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
| | | SOFTWARE. |
| New file |
| | |
| | | # Database-Sync |
| | | 基于java开发的功能强大、配置灵活的数据库之间同步工具,和数据产生器一样,均是前段时间因为项目需要编写的小工具,在实际应用场景中,我们经常需要定期将一个数据库的数据同步到另外一个数据库中,常见的一种做法是将源数据库的数据dump为sql文件,然后到目标数据库执行sql文件完成数据库的导入,但是这种方法至少存在以下问题: |
| | | - 需要手工操作,效率低 |
| | | - 当涉及数据表较多时,容易遗漏、出错 |
| | | - 如果要定期同步,操作人容易忘记 |
| | | - 难以应付频繁变更数据表或者字段 |
| | | |
| | | 针对以上存在的问题,将珍贵人力从这种重复、无意义的工作中解脱出来,特意开发这个小工具,其中主要配置主要在jobs.xml中完成 |
| | | |
| | | ## 主要功能 |
| | | - 目标数据目前只支持MySQL和SQL Sever,源数据库为任何支持sql语法的数据库 |
| | | - 根据cron表达式配置数据同步的周期和时间 |
| | | - 执行多个数据同步任务 |
| | | - 源数据是根据配置的sql语句查询得到,使用者可以非常灵活根据需要进行修改 |
| | | - 根据配置的字段,判断同步数据是插入还是更新 |
| | | |
| | | ## 编译和运行 |
| | | |
| | | > mvn package |
| | | |
| | | >cp jobs.xml ./target/jobs.xml |
| | | |
| | | > cd target |
| | | |
| | | > java -jar DataGenerator-0.0.1-SNAPSHOT.jar |
| | | |
| | | ## 基本使用 |
| | | cat jobs.xml |
| | | ```xml |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <root> |
| | | <code>0001</code> |
| | | <source> <!-- 源数据库连接方式 --> |
| | | <url>jdbc:oracle:thin:@192.168.1.179:1521:XE</url> |
| | | <username>test</username> |
| | | <password>test</password> |
| | | <dbtype>oracle</dbtype> |
| | | <driver>oracle.jdbc.driver.OracleDriver</driver> |
| | | </source> |
| | | <dest> <!-- 目标数据库连接方式 --> |
| | | <url>jdbc:sqlserver://192.168.1.191:1433;DatabaseName=test</url> |
| | | <username>test</username> |
| | | <password>test</password> |
| | | <dbtype>sqlserver</dbtype> |
| | | <driver>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver> |
| | | </dest> |
| | | <jobs> <!-- 数据库同步任务,可以根据实际需要添加多个job --> |
| | | <job> |
| | | <name>1</name> <!-- job的名称,每一个job的名称最好不一样 --> |
| | | <cron>0/10 * * * * ?</cron> <!-- 定时调度cron表达式 --> |
| | | <srcSql>select username as username,pwd as password from user</srcSql> <!-- 源数据库的查询语句 --> |
| | | <destTable>user</destTable> <!-- 目标数据库的数据表 --> |
| | | <destTableFields>username,password</destTableFields> <!-- 目标数据库数据表的字段,必须和源数据库中查询语句的字段保持一致 --> |
| | | <destTableKey>username</destTableKey> <!-- 根据此字段判断同步的数据是否在目标数据库总存在 --> |
| | | <destTableUpdate>password</destTableUpdate> <!-- 如果目标数据库中存在destTableKey标签字段相同的数据,则更新此字段 --> |
| | | </job> |
| | | </jobs> |
| | | </root> |
| | | ``` |
| New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <root> |
| | | <code>4500000001</code> |
| | | <source> |
| | | <url>jdbc:mysql://139.196.74.78:3308/jagzw_test</url> |
| | | <username>root</username> |
| | | <password>jxpskj_2018</password> |
| | | <dbtype>mysql</dbtype> |
| | | <driver>com.mysql.cj.jdbc.Driver</driver> |
| | | </source> |
| | | <dest> |
| | | <url>jdbc:postgresql://139.196.74.78:5433/jagzw_test?currentSchema=jagzw</url> |
| | | <username>gaussdb</username> |
| | | <password>Ztzf@81f4</password> |
| | | <dbtype>postgresql</dbtype> |
| | | <driver>org.postgresql.Driver</driver> |
| | | </dest> |
| | | <jobs> |
| | | <!-- <job>--> |
| | | <!-- <!– job的名称,每一个job的名称最好不一样 –>--> |
| | | <!-- <name>blade_attach_sync</name>--> |
| | | <!-- <!– 定时调度cron表达式 –>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <!– 源数据库的查询语句 –>--> |
| | | <!-- <srcSql>SELECT * from blade_attach</srcSql>--> |
| | | <!-- <!– 目标数据库的数据表 –>--> |
| | | <!-- <destTable>blade_attach</destTable>--> |
| | | <!-- <!– 目标数据库数据表的字段,必须和源数据库中查询语句的字段保持一致 –>--> |
| | | <!-- <destTableFields>id,tenant_id,link,domain_url,name,nick_name,original_name,extension,attach_size,patrol_task_id,result_type,device_sn,workspace_id,metadata,drone_data,remark,md5,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <!– 根据此字段判断同步的数据是否在目标数据库总存在 –>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <!– 如果目标数据库中存在destTableKey标签字段相同的数据,则更新此字段 –>--> |
| | | <!-- <destTableUpdate>tenant_id,link,domain_url,name,nick_name,original_name,extension,attach_size,patrol_task_id,result_type,device_sn,workspace_id,metadata,drone_data,remark,md5,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_dept_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_dept</srcSql>--> |
| | | <!-- <destTable>blade_dept</destTable>--> |
| | | <!-- <destTableFields>id,dept_code,tenant_id,parent_id,ancestors,dept_category,dept_name,full_name,sort,remark,dept_nature,bing_id,bind_code,deployment_mode,area_code,status,is_deleted,create_time,update_time</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>dept_code,tenant_id,parent_id,ancestors,dept_category,dept_name,full_name,sort,remark,dept_nature,bing_id,bind_code,deployment_mode,area_code,status,is_deleted,create_time,update_time</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_dict_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_dict</srcSql>--> |
| | | <!-- <destTable>blade_dict</destTable>--> |
| | | <!-- <destTableFields>id,parent_id,code,dict_key,dict_value,sort,remark,is_sealed,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>parent_id,code,dict_key,dict_value,sort,remark,is_sealed,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_dict_biz_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_dict_biz</srcSql>--> |
| | | <!-- <destTable>blade_dict_biz</destTable>--> |
| | | <!-- <destTableFields>id,tenant_id,parent_id,code,dict_key,dict_value,sort,remark,is_sealed,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>tenant_id,parent_id,code,dict_key,dict_value,sort,remark,is_sealed,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <job> |
| | | <name>blade_job_info_sync</name> |
| | | <cron>0/10 * * * * ?</cron> |
| | | <srcSql>SELECT * from blade_job_info</srcSql> |
| | | <destTable>blade_job_info</destTable> |
| | | <destTableFields>id,job_server_id,job_id,job_name,job_description,job_params,time_expression_type,time_expression,execute_type,processor_type,processor_info,max_instance_num,concurrency,instance_time_limit,instance_retry_num,task_retry_num,min_cpu_cores,min_memory_space,min_disk_space,designated_workers,max_worker_count,notify_user_ids,enable,dispatch_strategy,lifecycle,alert_threshold,statistic_window_len,silence_window_len,log_type,log_level,extra,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields> |
| | | <destTableKey>id</destTableKey> |
| | | <destTableUpdate>job_server_id,job_id,job_name,job_description,job_params,time_expression_type,time_expression,execute_type,processor_type,processor_info,max_instance_num,concurrency,instance_time_limit,instance_retry_num,task_retry_num,min_cpu_cores,min_memory_space,min_disk_space,designated_workers,max_worker_count,notify_user_ids,enable,dispatch_strategy,lifecycle,alert_threshold,statistic_window_len,silence_window_len,log_type,log_level,extra,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate> |
| | | </job> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_job_server_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_job_server</srcSql>--> |
| | | <!-- <destTable>blade_job_server</destTable>--> |
| | | <!-- <destTableFields>id,job_server_name,job_server_url,job_app_name,job_app_password,job_remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>job_server_name,job_server_url,job_app_name,job_app_password,job_remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_log_api_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_log_api</srcSql>--> |
| | | <!-- <destTable>blade_log_api</destTable>--> |
| | | <!-- <destTableFields>id,tenant_id,service_id,server_host,server_ip,env,type,title,method,request_uri,user_agent,remote_ip,method_class,method_name,params,time,create_by,create_time</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>tenant_id,service_id,server_host,server_ip,env,type,title,method,request_uri,user_agent,remote_ip,method_class,method_name,params,time,create_by,create_time</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_log_error_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_log_error</srcSql>--> |
| | | <!-- <destTable>blade_log_error</destTable>--> |
| | | <!-- <destTableFields>id,tenant_id,service_id,server_host,server_ip,env,method,request_uri,user_agent,stack_trace,exception_name,message,line_number,remote_ip,method_class,file_name,method_name,params,create_by,create_time</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>tenant_id,service_id,server_host,server_ip,env,method,request_uri,user_agent,stack_trace,exception_name,message,line_number,remote_ip,method_class,file_name,method_name,params,create_by,create_time</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_log_usual_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_log_usual</srcSql>--> |
| | | <!-- <destTable>blade_log_usual</destTable>--> |
| | | <!-- <destTableFields>id,tenant_id,service_id,server_host,server_ip,env,log_level,log_id,log_data,method,request_uri,remote_ip,method_class,method_name,user_agent,params,create_by,create_time</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>tenant_id,service_id,server_host,server_ip,env,log_level,log_id,log_data,method,request_uri,remote_ip,method_class,method_name,user_agent,params,create_by,create_time</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_menu_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_menu</srcSql>--> |
| | | <!-- <destTable>blade_menu</destTable>--> |
| | | <!-- <destTableFields>id,parent_id,code,name,alias,path,source,sort,category,sys_type,action,is_open,is_device,component,remark,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>parent_id,code,name,alias,path,source,sort,category,sys_type,action,is_open,is_device,component,remark,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_model_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_model</srcSql>--> |
| | | <!-- <destTable>blade_model</destTable>--> |
| | | <!-- <destTableFields>id,datasource_id,model_name,model_code,model_table,model_class,model_remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>datasource_id,model_name,model_code,model_table,model_class,model_remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_model_prototype_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_model_prototype</srcSql>--> |
| | | <!-- <destTable>blade_model_prototype</destTable>--> |
| | | <!-- <destTableFields>id,model_id,jdbc_name,jdbc_type,jdbc_comment,property_type,property_entity,property_name,is_list,is_form,is_row,component_type,dict_code,is_required,is_query,query_type,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>model_id,jdbc_name,jdbc_type,jdbc_comment,property_type,property_entity,property_name,is_list,is_form,is_row,component_type,dict_code,is_required,is_query,query_type,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_notice_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_notice</srcSql>--> |
| | | <!-- <destTable>blade_notice</destTable>--> |
| | | <!-- <destTableFields>id,tenant_id,title,category,release_time,content,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>tenant_id,title,category,release_time,content,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_oss_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_oss</srcSql>--> |
| | | <!-- <destTable>blade_oss</destTable>--> |
| | | <!-- <destTableFields>id,tenant_id,category,oss_code,endpoint,transform_endpoint,access_key,secret_key,bucket_name,app_id,region,remark,is_def,expire,object_dir_prefix,name,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>tenant_id,category,oss_code,endpoint,transform_endpoint,access_key,secret_key,bucket_name,app_id,region,remark,is_def,expire,object_dir_prefix,name,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_param_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_param</srcSql>--> |
| | | <!-- <destTable>blade_param</destTable>--> |
| | | <!-- <destTableFields>id,param_name,param_key,param_value,remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>param_name,param_key,param_value,remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_post_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_post</srcSql>--> |
| | | <!-- <destTable>blade_post</destTable>--> |
| | | <!-- <destTableFields>id,tenant_id,category,post_code,post_name,sort,remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>tenant_id,category,post_code,post_name,sort,remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_process_leave_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_process_leave</srcSql>--> |
| | | <!-- <destTable>blade_process_leave</destTable>--> |
| | | <!-- <destTableFields>id,process_definition_id,process_instance_id,start_time,end_time,reason,task_user,apply_time,attach_url,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>process_definition_id,process_instance_id,start_time,end_time,reason,task_user,apply_time,attach_url,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_region_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_region</srcSql>--> |
| | | <!-- <destTable>blade_region</destTable>--> |
| | | <!-- <destTableFields>id,code,parent_code,ancestors,name,province_code,province_name,city_code,city_name,district_code,district_name,town_code,town_name,village_code,village_name,region_level,type,sort,remark,status,create_time,update_time</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>code,parent_code,ancestors,name,province_code,province_name,city_code,city_name,district_code,district_name,town_code,town_name,village_code,village_name,region_level,type,sort,remark,status,create_time,update_time</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_report_file_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_report_file</srcSql>--> |
| | | <!-- <destTable>blade_report_file</destTable>--> |
| | | <!-- <destTableFields>id,name,content,create_time,update_time,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>name,content,create_time,update_time,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_role_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_role</srcSql>--> |
| | | <!-- <destTable>blade_role</destTable>--> |
| | | <!-- <destTableFields>id,tenant_id,parent_id,role_name,sort,role_alias,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>tenant_id,parent_id,role_name,sort,role_alias,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_role_menu_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_role_menu</srcSql>--> |
| | | <!-- <destTable>blade_role_menu</destTable>--> |
| | | <!-- <destTableFields>id,menu_id,role_id</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>menu_id,role_id</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_role_scope_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_role_scope</srcSql>--> |
| | | <!-- <destTable>blade_role_scope</destTable>--> |
| | | <!-- <destTableFields>id,scope_category,scope_id,role_id</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>scope_category,scope_id,role_id</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_scope_api_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_scope_api</srcSql>--> |
| | | <!-- <destTable>blade_scope_api</destTable>--> |
| | | <!-- <destTableFields>id,menu_id,resource_code,scope_name,scope_path,scope_type,remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>menu_id,resource_code,scope_name,scope_path,scope_type,remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_scope_data_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_scope_data</srcSql>--> |
| | | <!-- <destTable>blade_scope_data</destTable>--> |
| | | <!-- <destTableFields>id,menu_id,resource_code,scope_name,scope_field,scope_class,scope_column,scope_type,scope_value,remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>menu_id,resource_code,scope_name,scope_field,scope_class,scope_column,scope_type,scope_value,remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_sms_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_sms</srcSql>--> |
| | | <!-- <destTable>blade_sms</destTable>--> |
| | | <!-- <destTableFields>id,tenant_id,category,sms_code,template_id,access_key,secret_key,region_id,sign_name,remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>tenant_id,category,sms_code,template_id,access_key,secret_key,region_id,sign_name,remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_tenant_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_tenant</srcSql>--> |
| | | <!-- <destTable>blade_tenant</destTable>--> |
| | | <!-- <destTableFields>id,tenant_id,tenant_name,domain_url,background_url,linkman,contact_number,address,account_number,expire_time,package_id,datasource_id,license_key,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>tenant_id,tenant_name,domain_url,background_url,linkman,contact_number,address,account_number,expire_time,package_id,datasource_id,license_key,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_tenant_package_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_tenant_package</srcSql>--> |
| | | <!-- <destTable>blade_tenant_package</destTable>--> |
| | | <!-- <destTableFields>id,package_name,menu_id,remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>package_name,menu_id,remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_top_menu_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_top_menu</srcSql>--> |
| | | <!-- <destTable>blade_top_menu</destTable>--> |
| | | <!-- <destTableFields>id,tenant_id,code,name,source,sort,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>tenant_id,code,name,source,sort,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_top_menu_setting_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_top_menu_setting</srcSql>--> |
| | | <!-- <destTable>blade_top_menu_setting</destTable>--> |
| | | <!-- <destTableFields>id,top_menu_id,menu_id</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>top_menu_id,menu_id</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_user_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_user</srcSql>--> |
| | | <!-- <destTable>blade_user</destTable>--> |
| | | <!-- <destTableFields>id,tenant_id,code,user_type,account,password,name,real_name,avatar,email,phone,birthday,sex,role_id,dept_id,post_id,flight_start_time,flight_end_time,max_login_num,expire_time,create_user,create_dept,create_time,update_user,update_time,status,is_deleted,area_code</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>tenant_id,code,user_type,account,password,name,real_name,avatar,email,phone,birthday,sex,role_id,dept_id,post_id,flight_start_time,flight_end_time,max_login_num,expire_time,create_user,create_dept,create_time,update_user,update_time,status,is_deleted,area_code</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_user_app_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_user_app</srcSql>--> |
| | | <!-- <destTable>blade_user_app</destTable>--> |
| | | <!-- <destTableFields>id,user_id,user_ext</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>user_id,user_ext</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_user_dept_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_user_dept</srcSql>--> |
| | | <!-- <destTable>blade_user_dept</destTable>--> |
| | | <!-- <destTableFields>id,user_id,dept_id</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>user_id,dept_id</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_user_oauth_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_user_oauth</srcSql>--> |
| | | <!-- <destTable>blade_user_oauth</destTable>--> |
| | | <!-- <destTableFields>id,tenant_id,uuid,user_id,username,nickname,avatar,blog,company,location,email,remark,gender,source</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>tenant_id,uuid,user_id,username,nickname,avatar,blog,company,location,email,remark,gender,source</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_user_other_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_user_other</srcSql>--> |
| | | <!-- <destTable>blade_user_other</destTable>--> |
| | | <!-- <destTableFields>id,user_id,user_ext</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>user_id,user_ext</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_user_web_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_user_web</srcSql>--> |
| | | <!-- <destTable>blade_user_web</destTable>--> |
| | | <!-- <destTableFields>id,user_id,user_ext</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>user_id,user_ext</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>help_center_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from help_center</srcSql>--> |
| | | <!-- <destTable>help_center</destTable>--> |
| | | <!-- <destTableFields>id,level_one_type,level_two_type,upload_user,create_time,file_path</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>level_one_type,level_two_type,upload_user,create_time,file_path</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | </jobs> |
| | | </root> |
| New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <root> |
| | | <code>4500000001</code> |
| | | <source> |
| | | <url>jdbc:mysql://139.196.74.78:3308/jagzw_test</url> |
| | | <username>root</username> |
| | | <password>jxpskj_2018</password> |
| | | <dbtype>mysql</dbtype> |
| | | <driver>com.mysql.cj.jdbc.Driver</driver> |
| | | </source> |
| | | <dest> |
| | | <url>jdbc:postgresql://139.196.74.78:5433/jagzw_test?currentSchema=jagzw</url> |
| | | <username>gaussdb</username> |
| | | <password>Ztzf@81f4</password> |
| | | <dbtype>postgresql</dbtype> |
| | | <driver>org.postgresql.Driver</driver> |
| | | </dest> |
| | | <jobs> |
| | | <!-- <job>--> |
| | | <!-- <!– job的名称,每一个job的名称最好不一样 –>--> |
| | | <!-- <name>blade_attach_sync</name>--> |
| | | <!-- <!– 定时调度cron表达式 –>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <!– 源数据库的查询语句 –>--> |
| | | <!-- <srcSql>SELECT * from blade_attach</srcSql>--> |
| | | <!-- <!– 目标数据库的数据表 –>--> |
| | | <!-- <destTable>blade_attach</destTable>--> |
| | | <!-- <!– 目标数据库数据表的字段,必须和源数据库中查询语句的字段保持一致 –>--> |
| | | <!-- <destTableFields>id,tenant_id,link,domain_url,name,nick_name,original_name,extension,attach_size,patrol_task_id,result_type,device_sn,workspace_id,metadata,drone_data,remark,md5,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <!– 根据此字段判断同步的数据是否在目标数据库总存在 –>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <!– 如果目标数据库中存在destTableKey标签字段相同的数据,则更新此字段 –>--> |
| | | <!-- <destTableUpdate>tenant_id,link,domain_url,name,nick_name,original_name,extension,attach_size,patrol_task_id,result_type,device_sn,workspace_id,metadata,drone_data,remark,md5,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_dept_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_dept</srcSql>--> |
| | | <!-- <destTable>blade_dept</destTable>--> |
| | | <!-- <destTableFields>id,dept_code,tenant_id,parent_id,ancestors,dept_category,dept_name,full_name,sort,remark,dept_nature,bing_id,bind_code,deployment_mode,area_code,status,is_deleted,create_time,update_time</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>dept_code,tenant_id,parent_id,ancestors,dept_category,dept_name,full_name,sort,remark,dept_nature,bing_id,bind_code,deployment_mode,area_code,status,is_deleted,create_time,update_time</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_dict_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_dict</srcSql>--> |
| | | <!-- <destTable>blade_dict</destTable>--> |
| | | <!-- <destTableFields>id,parent_id,code,dict_key,dict_value,sort,remark,is_sealed,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>parent_id,code,dict_key,dict_value,sort,remark,is_sealed,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_dict_biz_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_dict_biz</srcSql>--> |
| | | <!-- <destTable>blade_dict_biz</destTable>--> |
| | | <!-- <destTableFields>id,tenant_id,parent_id,code,dict_key,dict_value,sort,remark,is_sealed,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>tenant_id,parent_id,code,dict_key,dict_value,sort,remark,is_sealed,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <job> |
| | | <name>ja_fw_alarm_favorite_sync</name> |
| | | <cron>0/10 * * * * ?</cron> |
| | | <srcSql>SELECT * from ja_fw_alarm_favorite</srcSql> |
| | | <destTable>ja_fw_alarm_favorite</destTable> |
| | | <destTableFields>id,alarm_record_id,user_id,title,remark,create_time,create_user,create_dept,update_user,update_time,status,is_deleted</destTableFields> |
| | | <destTableKey>id</destTableKey> |
| | | <destTableUpdate>alarm_record_id,user_id,title,remark,create_time,create_user,create_dept,update_user,update_time,status,is_deleted</destTableUpdate> |
| | | </job> |
| | | <!-- <job>--> |
| | | <!-- <name>ja_fw_area_divide_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from ja_fw_area_divide</srcSql>--> |
| | | <!-- <destTable>ja_fw_area_divide</destTable>--> |
| | | <!-- <destTableFields>id,area_name,trigger_condition,response_mechanism,control_level,police_station_id,device_ids,fly_time_start,fly_time_end,fly_date_start,fly_date_end,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted,area_type_keys</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>area_name,trigger_condition,response_mechanism,control_level,police_station_id,device_ids,fly_time_start,fly_time_end,fly_date_start,fly_date_end,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted,area_type_keys</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>ja_fw_area_divide_ext_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from ja_fw_area_divide_ext</srcSql>--> |
| | | <!-- <destTable>ja_fw_area_divide_ext</destTable>--> |
| | | <!-- <destTableFields>id,area_divide_id,area_type_key,area_type_value,geom_json,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>area_divide_id,area_type_key,area_type_value,geom_json,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>ja_fw_defense_scene_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from ja_fw_defense_scene</srcSql>--> |
| | | <!-- <destTable>ja_fw_defense_scene</destTable>--> |
| | | <!-- <destTableFields>id,scene_name,scene_type,device_mode,area_divide_ids,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>scene_name,scene_type,device_mode,area_divide_ids,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>ja_fw_defense_scene_manage_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from ja_fw_defense_scene_manage</srcSql>--> |
| | | <!-- <destTable>ja_fw_defense_scene_manage</destTable>--> |
| | | <!-- <destTableFields>id,defense_scene_id,scene_name,longitude,latitude,defense_leader,leader_phone,effective_date_start,effective_date_end,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>defense_scene_id,scene_name,longitude,latitude,defense_leader,leader_phone,effective_date_start,effective_date_end,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>ja_fw_defense_zone_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from ja_fw_defense_zone</srcSql>--> |
| | | <!-- <destTable>ja_fw_defense_zone</destTable>--> |
| | | <!-- <destTableFields>id,zone_name,zone_area,defense_scene_ids,area_divide_ids,device_ids,geom,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>zone_name,zone_area,defense_scene_ids,area_divide_ids,device_ids,geom,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>ja_fw_device_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from ja_fw_device</srcSql>--> |
| | | <!-- <destTable>ja_fw_device</destTable>--> |
| | | <!-- <destTableFields>id,airport_id,device_sn,device_name,device_type,device_att,device_model,device_specification,manufacturer,source,purpose,belong_dept,charger,contact_phone,remark,battery_pct,azimuth,elevation,detect_target_cnt,effective_range_km,work_mode,latitude,longitude,area_code,track_status,final_outbound_area,final_outbound_area_code,is_enabled,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>airport_id,device_sn,device_name,device_type,device_att,device_model,device_specification,manufacturer,source,purpose,belong_dept,charger,contact_phone,remark,battery_pct,azimuth,elevation,detect_target_cnt,effective_range_km,work_mode,latitude,longitude,area_code,track_status,final_outbound_area,final_outbound_area_code,is_enabled,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>ja_fw_device_config_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from ja_fw_device_config</srcSql>--> |
| | | <!-- <destTable>ja_fw_device_config</destTable>--> |
| | | <!-- <destTableFields>id,device_id,config_version,is_latest,config_json,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>device_id,config_version,is_latest,config_json,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>ja_fw_device_maintain_plan_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from ja_fw_device_maintain_plan</srcSql>--> |
| | | <!-- <destTable>ja_fw_device_maintain_plan</destTable>--> |
| | | <!-- <destTableFields>id,device_id,plan_cycle_type,plan_cycle_value,maintain_status,last_maintain_time,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>device_id,plan_cycle_type,plan_cycle_value,maintain_status,last_maintain_time,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>ja_fw_device_maintain_record_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from ja_fw_device_maintain_record</srcSql>--> |
| | | <!-- <destTable>ja_fw_device_maintain_record</destTable>--> |
| | | <!-- <destTableFields>id,device_id,plan_id,maintain_time,maintain_content,replace_part,remark,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>device_id,plan_id,maintain_time,maintain_content,replace_part,remark,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>ja_fw_device_per_share_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from ja_fw_device_per_share</srcSql>--> |
| | | <!-- <destTable>ja_fw_device_per_share</destTable>--> |
| | | <!-- <destTableFields>id,device_sn,device_id,loan_from_dept_id,loan_to_dept_id,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>device_sn,device_id,loan_from_dept_id,loan_to_dept_id,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>ja_fw_device_scrap_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from ja_fw_device_scrap</srcSql>--> |
| | | <!-- <destTable>ja_fw_device_scrap</destTable>--> |
| | | <!-- <destTableFields>id,device_id,scrap_time,scrap_reason,dispose_way,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>device_id,scrap_time,scrap_reason,dispose_way,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>ja_fw_device_track_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from ja_fw_device_track</srcSql>--> |
| | | <!-- <destTable>ja_fw_device_track</destTable>--> |
| | | <!-- <destTableFields>id,device_id,out_time,out_target,out_target_code,purpose,charger,contact_phone,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>device_id,out_time,out_target,out_target_code,purpose,charger,contact_phone,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>ja_fw_drone_alarm_record_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from ja_fw_drone_alarm_record</srcSql>--> |
| | | <!-- <destTable>ja_fw_drone_alarm_record</destTable>--> |
| | | <!-- <destTableFields>id,device_id,device_type,drone_name,device_sn,drone_serial_no,drone_type,alarm_type,alarm_time,trigger_reason,flight_status,longitude,latitude,area_name,signal_freq_mhz,flight_height_m,flight_speed_ms,stay_duration,counter_way,area_divide_id,defense_scene_id,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>device_id,device_type,drone_name,device_sn,drone_serial_no,drone_type,alarm_type,alarm_time,trigger_reason,flight_status,longitude,latitude,area_name,signal_freq_mhz,flight_height_m,flight_speed_ms,stay_duration,counter_way,area_divide_id,defense_scene_id,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>ja_fw_drone_flight_record_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from ja_fw_drone_flight_record</srcSql>--> |
| | | <!-- <destTable>ja_fw_drone_flight_record</destTable>--> |
| | | <!-- <destTableFields>id,device_id,area_divide_id,device_type,drone_name,area_name,serial_no,alarm_time,trigger_type,stay_duration,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>device_id,area_divide_id,device_type,drone_name,area_name,serial_no,alarm_time,trigger_type,stay_duration,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>ja_fw_drone_flight_record_detail_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from ja_fw_drone_flight_record_detail</srcSql>--> |
| | | <!-- <destTable>ja_fw_drone_flight_record_detail</destTable>--> |
| | | <!-- <destTableFields>id,flight_record_id,longitude,latitude,point_time,is_alarm,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>flight_record_id,longitude,latitude,point_time,is_alarm,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>ja_fw_effect_eval_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from ja_fw_effect_eval</srcSql>--> |
| | | <!-- <destTable>ja_fw_effect_eval</destTable>--> |
| | | <!-- <destTableFields>id,alarm_record_id,counter_way,device_id,device_sn,device_name,device_model,device_type,drone_name,drone_type,drone_device_code,find_time,counter_effect,deploy_longitude,deploy_latitude,cover_radius_m,work_mode,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>alarm_record_id,counter_way,device_id,device_sn,device_name,device_model,device_type,drone_name,drone_type,drone_device_code,find_time,counter_effect,deploy_longitude,deploy_latitude,cover_radius_m,work_mode,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>ja_fw_police_station_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from ja_fw_police_station</srcSql>--> |
| | | <!-- <destTable>ja_fw_police_station</destTable>--> |
| | | <!-- <destTableFields>id,station_name,address,longitude,latitude,contact_person,contact_phone,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>station_name,address,longitude,latitude,contact_person,contact_phone,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>ja_fw_task_schedule_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from ja_fw_task_schedule</srcSql>--> |
| | | <!-- <destTable>ja_fw_task_schedule</destTable>--> |
| | | <!-- <destTableFields>id,device_id,area_divide_id,defense_scene_id,longitude,latitude,dispatch_user,dispatch_start_time,dispatch_end_time,dispatch_content,dispatch_result,dispose_measure,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>device_id,area_divide_id,defense_scene_id,longitude,latitude,dispatch_user,dispatch_start_time,dispatch_end_time,dispatch_content,dispatch_result,dispose_measure,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>ja_gd_application_innovation_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from ja_gd_application_innovation</srcSql>--> |
| | | <!-- <destTable>ja_gd_application_innovation</destTable>--> |
| | | <!-- <destTableFields>id,case_name,belong_domain,innovation_status,application_scenario_desc,matter_name,resource_name,resource_code,case_desc,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>case_name,belong_domain,innovation_status,application_scenario_desc,matter_name,resource_name,resource_code,case_desc,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>ja_gd_clue_event_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from ja_gd_clue_event</srcSql>--> |
| | | <!-- <destTable>ja_gd_clue_event</destTable>--> |
| | | <!-- <destTableFields>id,result_id,work_order_id,event_num,dispose_user,dispose_dept,longitude,latitude,event_status,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>result_id,work_order_id,event_num,dispose_user,dispose_dept,longitude,latitude,event_status,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>ja_gd_data_evaluation_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from ja_gd_data_evaluation</srcSql>--> |
| | | <!-- <destTable>ja_gd_data_evaluation</destTable>--> |
| | | <!-- <destTableFields>id,title,data_name,propose_dept_id,data_provide_dept_id,score,is_resolved,evaluation_content,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>title,data_name,propose_dept_id,data_provide_dept_id,score,is_resolved,evaluation_content,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>ja_gd_data_objection_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from ja_gd_data_objection</srcSql>--> |
| | | <!-- <destTable>ja_gd_data_objection</destTable>--> |
| | | <!-- <destTableFields>id,title,objection_type,objection_status,catalog_resource_name,submitter,submitter_contact,handle_unit,objection_desc,objection_basis,other_objection_detail,review_opinion,apply_target_dept_id,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>title,objection_type,objection_status,catalog_resource_name,submitter,submitter_contact,handle_unit,objection_desc,objection_basis,other_objection_detail,review_opinion,apply_target_dept_id,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>ja_gd_data_objection_attachment_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from ja_gd_data_objection_attachment</srcSql>--> |
| | | <!-- <destTable>ja_gd_data_objection_attachment</destTable>--> |
| | | <!-- <destTableFields>id,objection_id,attach_id,attach_name,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>objection_id,attach_id,attach_name,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>ja_gd_flyer_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from ja_gd_flyer</srcSql>--> |
| | | <!-- <destTable>ja_gd_flyer</destTable>--> |
| | | <!-- <destTableFields>id,flyer_id,flyer_name,flyer_phone,region_code,flight_hours,project_experience,technical_strength,skilled_uav_type,skilled_task_type,flyer_address,certification,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>flyer_id,flyer_name,flyer_phone,region_code,flight_hours,project_experience,technical_strength,skilled_uav_type,skilled_task_type,flyer_address,certification,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>ja_gd_implement_list_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from ja_gd_implement_list</srcSql>--> |
| | | <!-- <destTable>ja_gd_implement_list</destTable>--> |
| | | <!-- <destTableFields>id,matter_name,matter_code,area_code,area_name,org_code,org_name,catalog_code,implement_code,implement_name,process_definition_id,process_instance_id,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>matter_name,matter_code,area_code,area_name,org_code,org_name,catalog_code,implement_code,implement_name,process_definition_id,process_instance_id,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>ja_gd_manage_device_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from ja_gd_manage_device</srcSql>--> |
| | | <!-- <destTable>ja_gd_manage_device</destTable>--> |
| | | <!-- <destTableFields>id,airport_id,device_sn,child_sn,device_name,longitude,latitude,nickname,device_type,device_payload,geom,firmware_version,mode_code,insure_expired_time,traffic_remaining,traffic_expire_time,location,height,is_with_dock,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>airport_id,device_sn,child_sn,device_name,longitude,latitude,nickname,device_type,device_payload,geom,firmware_version,mode_code,insure_expired_time,traffic_remaining,traffic_expire_time,location,height,is_with_dock,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>ja_gd_material_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from ja_gd_material</srcSql>--> |
| | | <!-- <destTable>ja_gd_material</destTable>--> |
| | | <!-- <destTableFields>id,material_name,necessity,is_all_scenario,material_desc,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>material_name,necessity,is_all_scenario,material_desc,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>ja_gd_operational_revenue_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from ja_gd_operational_revenue</srcSql>--> |
| | | <!-- <destTable>ja_gd_operational_revenue</destTable>--> |
| | | <!-- <destTableFields>id,operating_income,total_cost,net_profit,financial_irr,market_space,create_time,create_user,create_dept,update_time,update_user,nick_name,is_deleted,earn_forecast</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>operating_income,total_cost,net_profit,financial_irr,market_space,create_time,create_user,create_dept,update_time,update_user,nick_name,is_deleted,earn_forecast</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>ja_gd_patrol_task_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from ja_gd_patrol_task</srcSql>--> |
| | | <!-- <destTable>ja_gd_patrol_task</destTable>--> |
| | | <!-- <destTableFields>id,work_order_id,task_no,patrol_task_name,patrol_task_type,execute_time,airline_id,patrol_route_url,recommend_flyer_name,device_id,task_desc,reject_reason,task_status,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>work_order_id,task_no,patrol_task_name,patrol_task_type,execute_time,airline_id,patrol_route_url,recommend_flyer_name,device_id,task_desc,reject_reason,task_status,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>ja_gd_supply_demand_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from ja_gd_supply_demand</srcSql>--> |
| | | <!-- <destTable>ja_gd_supply_demand</destTable>--> |
| | | <!-- <destTableFields>id,demand_name,demand_type,contact_person,contact_phone,contact_email,demand_status,update_cycle,apply_basis,share_type,application_scene,responsible_dept_id,apply_target_dept_id,data_source,demand_info,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>demand_name,demand_type,contact_person,contact_phone,contact_email,demand_status,update_cycle,apply_basis,share_type,application_scene,responsible_dept_id,apply_target_dept_id,data_source,demand_info,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>ja_gd_supply_demand_audit_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from ja_gd_supply_demand_audit</srcSql>--> |
| | | <!-- <destTable>ja_gd_supply_demand_audit</destTable>--> |
| | | <!-- <destTableFields>id,demand_id,audit_status,audit_opinion,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>demand_id,audit_status,audit_opinion,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>ja_gd_supply_demand_audit_attachment_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from ja_gd_supply_demand_audit_attachment</srcSql>--> |
| | | <!-- <destTable>ja_gd_supply_demand_audit_attachment</destTable>--> |
| | | <!-- <destTableFields>id,demand_id,attach_id,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>demand_id,attach_id,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>ja_gd_task_result_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from ja_gd_task_result</srcSql>--> |
| | | <!-- <destTable>ja_gd_task_result</destTable>--> |
| | | <!-- <destTableFields>id,patrol_task_id,result_code,result_url,shoot_time,photo_data,longitude,latitude,distribute_status,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>patrol_task_id,result_code,result_url,shoot_time,photo_data,longitude,latitude,distribute_status,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>ja_gd_thing_list_material_rel_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from ja_gd_thing_list_material_rel</srcSql>--> |
| | | <!-- <destTable>ja_gd_thing_list_material_rel</destTable>--> |
| | | <!-- <destTableFields>id,implement_list_id,material_id,sort,scenario_config,status,create_user,create_dept,create_time,update_user,update_time,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>implement_list_id,material_id,sort,scenario_config,status,create_user,create_dept,create_time,update_user,update_time,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>ja_gd_work_order_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from ja_gd_work_order</srcSql>--> |
| | | <!-- <destTable>ja_gd_work_order</destTable>--> |
| | | <!-- <destTableFields>id,work_order_name,work_order_code,work_order_type,device_load_demand,recommend_device_ids,work_order_status,execute_start_time,execute_end_time,service_party,geom,remark,reject_reason,full_snapshot,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>work_order_name,work_order_code,work_order_type,device_load_demand,recommend_device_ids,work_order_status,execute_start_time,execute_end_time,service_party,geom,remark,reject_reason,full_snapshot,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>ja_gd_work_order_flow_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from ja_gd_work_order_flow</srcSql>--> |
| | | <!-- <destTable>ja_gd_work_order_flow</destTable>--> |
| | | <!-- <destTableFields>id,flow_name,flow_status,flow_desc,work_order_id,work_status,operator,type,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>flow_name,flow_status,flow_desc,work_order_id,work_status,operator,type,area_code,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>ja_log_operation_log_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from ja_log_operation_log</srcSql>--> |
| | | <!-- <destTable>ja_log_operation_log</destTable>--> |
| | | <!-- <destTableFields>id,tenant_id,service_id,server_host,server_ip,env,type,title,method,request_uri,user_agent,remote_ip,method_class,method_name,params,create_by,create_time</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>tenant_id,service_id,server_host,server_ip,env,type,title,method,request_uri,user_agent,remote_ip,method_class,method_name,params,create_by,create_time</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>manage_device_per_share_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from manage_device_per_share</srcSql>--> |
| | | <!-- <destTable>manage_device_per_share</destTable>--> |
| | | <!-- <destTableFields>id,device_sn,loan_from_dept_id,loan_to_dept_id,device_per_menu_id,create_user,create_time</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>device_sn,loan_from_dept_id,loan_to_dept_id,device_per_menu_id,create_user,create_time</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>sys_config_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from sys_config</srcSql>--> |
| | | <!-- <destTable>sys_config</destTable>--> |
| | | <!-- <destTableFields>id,name,dept_id,create_time,update_time,remark,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>name,dept_id,create_time,update_time,remark,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | </jobs> |
| | | </root> |
| New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <root> |
| | | <code>4500000001</code> |
| | | <source> |
| | | <url>jdbc:mysql://139.196.74.78:3308/jagzw_test</url> |
| | | <username>root</username> |
| | | <password>jxpskj_2018</password> |
| | | <dbtype>mysql</dbtype> |
| | | <driver>com.mysql.cj.jdbc.Driver</driver> |
| | | </source> |
| | | <dest> |
| | | <url>jdbc:postgresql://139.196.74.78:5433/jagzw_test?currentSchema=jagzw</url> |
| | | <username>gaussdb</username> |
| | | <password>Ztzf@81f4</password> |
| | | <dbtype>postgresql</dbtype> |
| | | <driver>org.postgresql.Driver</driver> |
| | | </dest> |
| | | <jobs> |
| | | <!-- <job>--> |
| | | <!-- <!– job的名称,每一个job的名称最好不一样 –>--> |
| | | <!-- <name>blade_attach_sync</name>--> |
| | | <!-- <!– 定时调度cron表达式 –>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <!– 源数据库的查询语句 –>--> |
| | | <!-- <srcSql>SELECT * from blade_attach</srcSql>--> |
| | | <!-- <!– 目标数据库的数据表 –>--> |
| | | <!-- <destTable>blade_attach</destTable>--> |
| | | <!-- <!– 目标数据库数据表的字段,必须和源数据库中查询语句的字段保持一致 –>--> |
| | | <!-- <destTableFields>id,tenant_id,link,domain_url,name,nick_name,original_name,extension,attach_size,patrol_task_id,result_type,device_sn,workspace_id,metadata,drone_data,remark,md5,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <!– 根据此字段判断同步的数据是否在目标数据库总存在 –>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <!– 如果目标数据库中存在destTableKey标签字段相同的数据,则更新此字段 –>--> |
| | | <!-- <destTableUpdate>tenant_id,link,domain_url,name,nick_name,original_name,extension,attach_size,patrol_task_id,result_type,device_sn,workspace_id,metadata,drone_data,remark,md5,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_dept_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_dept</srcSql>--> |
| | | <!-- <destTable>blade_dept</destTable>--> |
| | | <!-- <destTableFields>id,dept_code,tenant_id,parent_id,ancestors,dept_category,dept_name,full_name,sort,remark,dept_nature,bing_id,bind_code,deployment_mode,area_code,status,is_deleted,create_time,update_time</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>dept_code,tenant_id,parent_id,ancestors,dept_category,dept_name,full_name,sort,remark,dept_nature,bing_id,bind_code,deployment_mode,area_code,status,is_deleted,create_time,update_time</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_dict_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_dict</srcSql>--> |
| | | <!-- <destTable>blade_dict</destTable>--> |
| | | <!-- <destTableFields>id,parent_id,code,dict_key,dict_value,sort,remark,is_sealed,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>parent_id,code,dict_key,dict_value,sort,remark,is_sealed,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_dict_biz_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_dict_biz</srcSql>--> |
| | | <!-- <destTable>blade_dict_biz</destTable>--> |
| | | <!-- <destTableFields>id,tenant_id,parent_id,code,dict_key,dict_value,sort,remark,is_sealed,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>tenant_id,parent_id,code,dict_key,dict_value,sort,remark,is_sealed,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_job_info_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_job_info</srcSql>--> |
| | | <!-- <destTable>blade_job_info</destTable>--> |
| | | <!-- <destTableFields>id,job_server_id,job_id,job_name,job_description,job_params,time_expression_type,time_expression,execute_type,processor_type,processor_info,max_instance_num,concurrency,instance_time_limit,instance_retry_num,task_retry_num,min_cpu_cores,min_memory_space,min_disk_space,designated_workers,max_worker_count,notify_user_ids,enable,dispatch_strategy,lifecycle,alert_threshold,statistic_window_len,silence_window_len,log_type,log_level,extra,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>job_server_id,job_id,job_name,job_description,job_params,time_expression_type,time_expression,execute_type,processor_type,processor_info,max_instance_num,concurrency,instance_time_limit,instance_retry_num,task_retry_num,min_cpu_cores,min_memory_space,min_disk_space,designated_workers,max_worker_count,notify_user_ids,enable,dispatch_strategy,lifecycle,alert_threshold,statistic_window_len,silence_window_len,log_type,log_level,extra,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_job_server_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_job_server</srcSql>--> |
| | | <!-- <destTable>blade_job_server</destTable>--> |
| | | <!-- <destTableFields>id,job_server_name,job_server_url,job_app_name,job_app_password,job_remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>job_server_name,job_server_url,job_app_name,job_app_password,job_remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_log_api_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_log_api</srcSql>--> |
| | | <!-- <destTable>blade_log_api</destTable>--> |
| | | <!-- <destTableFields>id,tenant_id,service_id,server_host,server_ip,env,type,title,method,request_uri,user_agent,remote_ip,method_class,method_name,params,time,create_by,create_time</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>tenant_id,service_id,server_host,server_ip,env,type,title,method,request_uri,user_agent,remote_ip,method_class,method_name,params,time,create_by,create_time</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_log_error_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_log_error</srcSql>--> |
| | | <!-- <destTable>blade_log_error</destTable>--> |
| | | <!-- <destTableFields>id,tenant_id,service_id,server_host,server_ip,env,method,request_uri,user_agent,stack_trace,exception_name,message,line_number,remote_ip,method_class,file_name,method_name,params,create_by,create_time</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>tenant_id,service_id,server_host,server_ip,env,method,request_uri,user_agent,stack_trace,exception_name,message,line_number,remote_ip,method_class,file_name,method_name,params,create_by,create_time</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_log_usual_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_log_usual</srcSql>--> |
| | | <!-- <destTable>blade_log_usual</destTable>--> |
| | | <!-- <destTableFields>id,tenant_id,service_id,server_host,server_ip,env,log_level,log_id,log_data,method,request_uri,remote_ip,method_class,method_name,user_agent,params,create_by,create_time</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>tenant_id,service_id,server_host,server_ip,env,log_level,log_id,log_data,method,request_uri,remote_ip,method_class,method_name,user_agent,params,create_by,create_time</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_menu_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_menu</srcSql>--> |
| | | <!-- <destTable>blade_menu</destTable>--> |
| | | <!-- <destTableFields>id,parent_id,code,name,alias,path,source,sort,category,sys_type,action,is_open,is_device,component,remark,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>parent_id,code,name,alias,path,source,sort,category,sys_type,action,is_open,is_device,component,remark,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_model_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_model</srcSql>--> |
| | | <!-- <destTable>blade_model</destTable>--> |
| | | <!-- <destTableFields>id,datasource_id,model_name,model_code,model_table,model_class,model_remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>datasource_id,model_name,model_code,model_table,model_class,model_remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_model_prototype_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_model_prototype</srcSql>--> |
| | | <!-- <destTable>blade_model_prototype</destTable>--> |
| | | <!-- <destTableFields>id,model_id,jdbc_name,jdbc_type,jdbc_comment,property_type,property_entity,property_name,is_list,is_form,is_row,component_type,dict_code,is_required,is_query,query_type,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>model_id,jdbc_name,jdbc_type,jdbc_comment,property_type,property_entity,property_name,is_list,is_form,is_row,component_type,dict_code,is_required,is_query,query_type,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_notice_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_notice</srcSql>--> |
| | | <!-- <destTable>blade_notice</destTable>--> |
| | | <!-- <destTableFields>id,tenant_id,title,category,release_time,content,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>tenant_id,title,category,release_time,content,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_oss_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_oss</srcSql>--> |
| | | <!-- <destTable>blade_oss</destTable>--> |
| | | <!-- <destTableFields>id,tenant_id,category,oss_code,endpoint,transform_endpoint,access_key,secret_key,bucket_name,app_id,region,remark,is_def,expire,object_dir_prefix,name,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>tenant_id,category,oss_code,endpoint,transform_endpoint,access_key,secret_key,bucket_name,app_id,region,remark,is_def,expire,object_dir_prefix,name,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_param_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_param</srcSql>--> |
| | | <!-- <destTable>blade_param</destTable>--> |
| | | <!-- <destTableFields>id,param_name,param_key,param_value,remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>param_name,param_key,param_value,remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_post_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_post</srcSql>--> |
| | | <!-- <destTable>blade_post</destTable>--> |
| | | <!-- <destTableFields>id,tenant_id,category,post_code,post_name,sort,remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>tenant_id,category,post_code,post_name,sort,remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_process_leave_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_process_leave</srcSql>--> |
| | | <!-- <destTable>blade_process_leave</destTable>--> |
| | | <!-- <destTableFields>id,process_definition_id,process_instance_id,start_time,end_time,reason,task_user,apply_time,attach_url,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>process_definition_id,process_instance_id,start_time,end_time,reason,task_user,apply_time,attach_url,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <job> |
| | | <name>blade_region_sync</name> |
| | | <!-- <cron>0 * * 5 * 2026</cron>--> |
| | | <srcSql>SELECT * from blade_region limit 0,1</srcSql> |
| | | <destTable>blade_region</destTable> |
| | | <destTableFields>id,code,parent_code,ancestors,name,province_code,province_name,city_code,city_name,district_code,district_name,town_code,town_name,village_code,village_name,region_level,type,sort,remark,status,create_time,update_time</destTableFields> |
| | | <destTableKey>id</destTableKey> |
| | | <destTableUpdate>code,parent_code,ancestors,name,province_code,province_name,city_code,city_name,district_code,district_name,town_code,town_name,village_code,village_name,region_level,type,sort,remark,status,create_time,update_time</destTableUpdate> |
| | | </job> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_report_file_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_report_file</srcSql>--> |
| | | <!-- <destTable>blade_report_file</destTable>--> |
| | | <!-- <destTableFields>id,name,content,create_time,update_time,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>name,content,create_time,update_time,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_role_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_role</srcSql>--> |
| | | <!-- <destTable>blade_role</destTable>--> |
| | | <!-- <destTableFields>id,tenant_id,parent_id,role_name,sort,role_alias,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>tenant_id,parent_id,role_name,sort,role_alias,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_role_menu_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_role_menu</srcSql>--> |
| | | <!-- <destTable>blade_role_menu</destTable>--> |
| | | <!-- <destTableFields>id,menu_id,role_id</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>menu_id,role_id</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_role_scope_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_role_scope</srcSql>--> |
| | | <!-- <destTable>blade_role_scope</destTable>--> |
| | | <!-- <destTableFields>id,scope_category,scope_id,role_id</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>scope_category,scope_id,role_id</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_scope_api_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_scope_api</srcSql>--> |
| | | <!-- <destTable>blade_scope_api</destTable>--> |
| | | <!-- <destTableFields>id,menu_id,resource_code,scope_name,scope_path,scope_type,remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>menu_id,resource_code,scope_name,scope_path,scope_type,remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_scope_data_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_scope_data</srcSql>--> |
| | | <!-- <destTable>blade_scope_data</destTable>--> |
| | | <!-- <destTableFields>id,menu_id,resource_code,scope_name,scope_field,scope_class,scope_column,scope_type,scope_value,remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>menu_id,resource_code,scope_name,scope_field,scope_class,scope_column,scope_type,scope_value,remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_sms_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_sms</srcSql>--> |
| | | <!-- <destTable>blade_sms</destTable>--> |
| | | <!-- <destTableFields>id,tenant_id,category,sms_code,template_id,access_key,secret_key,region_id,sign_name,remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>tenant_id,category,sms_code,template_id,access_key,secret_key,region_id,sign_name,remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_tenant_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_tenant</srcSql>--> |
| | | <!-- <destTable>blade_tenant</destTable>--> |
| | | <!-- <destTableFields>id,tenant_id,tenant_name,domain_url,background_url,linkman,contact_number,address,account_number,expire_time,package_id,datasource_id,license_key,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>tenant_id,tenant_name,domain_url,background_url,linkman,contact_number,address,account_number,expire_time,package_id,datasource_id,license_key,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_tenant_package_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_tenant_package</srcSql>--> |
| | | <!-- <destTable>blade_tenant_package</destTable>--> |
| | | <!-- <destTableFields>id,package_name,menu_id,remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>package_name,menu_id,remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_top_menu_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_top_menu</srcSql>--> |
| | | <!-- <destTable>blade_top_menu</destTable>--> |
| | | <!-- <destTableFields>id,tenant_id,code,name,source,sort,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>tenant_id,code,name,source,sort,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_top_menu_setting_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_top_menu_setting</srcSql>--> |
| | | <!-- <destTable>blade_top_menu_setting</destTable>--> |
| | | <!-- <destTableFields>id,top_menu_id,menu_id</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>top_menu_id,menu_id</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_user_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_user</srcSql>--> |
| | | <!-- <destTable>blade_user</destTable>--> |
| | | <!-- <destTableFields>id,tenant_id,code,user_type,account,password,name,real_name,avatar,email,phone,birthday,sex,role_id,dept_id,post_id,flight_start_time,flight_end_time,max_login_num,expire_time,create_user,create_dept,create_time,update_user,update_time,status,is_deleted,area_code</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>tenant_id,code,user_type,account,password,name,real_name,avatar,email,phone,birthday,sex,role_id,dept_id,post_id,flight_start_time,flight_end_time,max_login_num,expire_time,create_user,create_dept,create_time,update_user,update_time,status,is_deleted,area_code</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_user_app_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_user_app</srcSql>--> |
| | | <!-- <destTable>blade_user_app</destTable>--> |
| | | <!-- <destTableFields>id,user_id,user_ext</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>user_id,user_ext</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_user_dept_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_user_dept</srcSql>--> |
| | | <!-- <destTable>blade_user_dept</destTable>--> |
| | | <!-- <destTableFields>id,user_id,dept_id</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>user_id,dept_id</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_user_oauth_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_user_oauth</srcSql>--> |
| | | <!-- <destTable>blade_user_oauth</destTable>--> |
| | | <!-- <destTableFields>id,tenant_id,uuid,user_id,username,nickname,avatar,blog,company,location,email,remark,gender,source</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>tenant_id,uuid,user_id,username,nickname,avatar,blog,company,location,email,remark,gender,source</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_user_other_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_user_other</srcSql>--> |
| | | <!-- <destTable>blade_user_other</destTable>--> |
| | | <!-- <destTableFields>id,user_id,user_ext</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>user_id,user_ext</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_user_web_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_user_web</srcSql>--> |
| | | <!-- <destTable>blade_user_web</destTable>--> |
| | | <!-- <destTableFields>id,user_id,user_ext</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>user_id,user_ext</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>help_center_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from help_center</srcSql>--> |
| | | <!-- <destTable>help_center</destTable>--> |
| | | <!-- <destTableFields>id,level_one_type,level_two_type,upload_user,create_time,file_path</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>level_one_type,level_two_type,upload_user,create_time,file_path</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | </jobs> |
| | | </root> |
| New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <root> |
| | | <code>4500000001</code> |
| | | <source> |
| | | <url>jdbc:mysql://139.196.74.78:3308/jagzw_test</url> |
| | | <username>root</username> |
| | | <password>jxpskj_2018</password> |
| | | <dbtype>mysql</dbtype> |
| | | <driver>com.mysql.cj.jdbc.Driver</driver> |
| | | </source> |
| | | <dest> |
| | | <url>jdbc:postgresql://139.196.74.78:5433/jagzw_test?currentSchema=jagzw</url> |
| | | <username>gaussdb</username> |
| | | <password>Ztzf@81f4</password> |
| | | <dbtype>postgresql</dbtype> |
| | | <driver>org.postgresql.Driver</driver> |
| | | </dest> |
| | | <jobs> |
| | | <!-- <job>--> |
| | | <!-- <!– job的名称,每一个job的名称最好不一样 –>--> |
| | | <!-- <name>blade_attach_sync</name>--> |
| | | <!-- <!– 定时调度cron表达式 –>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <!– 源数据库的查询语句 –>--> |
| | | <!-- <srcSql>SELECT * from blade_attach</srcSql>--> |
| | | <!-- <!– 目标数据库的数据表 –>--> |
| | | <!-- <destTable>blade_attach</destTable>--> |
| | | <!-- <!– 目标数据库数据表的字段,必须和源数据库中查询语句的字段保持一致 –>--> |
| | | <!-- <destTableFields>id,tenant_id,link,domain_url,name,nick_name,original_name,extension,attach_size,patrol_task_id,result_type,device_sn,workspace_id,metadata,drone_data,remark,md5,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <!– 根据此字段判断同步的数据是否在目标数据库总存在 –>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <!– 如果目标数据库中存在destTableKey标签字段相同的数据,则更新此字段 –>--> |
| | | <!-- <destTableUpdate>tenant_id,link,domain_url,name,nick_name,original_name,extension,attach_size,patrol_task_id,result_type,device_sn,workspace_id,metadata,drone_data,remark,md5,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_dept_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_dept</srcSql>--> |
| | | <!-- <destTable>blade_dept</destTable>--> |
| | | <!-- <destTableFields>id,dept_code,tenant_id,parent_id,ancestors,dept_category,dept_name,full_name,sort,remark,dept_nature,bing_id,bind_code,deployment_mode,area_code,status,is_deleted,create_time,update_time</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>dept_code,tenant_id,parent_id,ancestors,dept_category,dept_name,full_name,sort,remark,dept_nature,bing_id,bind_code,deployment_mode,area_code,status,is_deleted,create_time,update_time</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_dict_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_dict</srcSql>--> |
| | | <!-- <destTable>blade_dict</destTable>--> |
| | | <!-- <destTableFields>id,parent_id,code,dict_key,dict_value,sort,remark,is_sealed,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>parent_id,code,dict_key,dict_value,sort,remark,is_sealed,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_dict_biz_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_dict_biz</srcSql>--> |
| | | <!-- <destTable>blade_dict_biz</destTable>--> |
| | | <!-- <destTableFields>id,tenant_id,parent_id,code,dict_key,dict_value,sort,remark,is_sealed,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>tenant_id,parent_id,code,dict_key,dict_value,sort,remark,is_sealed,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_job_info_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_job_info</srcSql>--> |
| | | <!-- <destTable>blade_job_info</destTable>--> |
| | | <!-- <destTableFields>id,job_server_id,job_id,job_name,job_description,job_params,time_expression_type,time_expression,execute_type,processor_type,processor_info,max_instance_num,concurrency,instance_time_limit,instance_retry_num,task_retry_num,min_cpu_cores,min_memory_space,min_disk_space,designated_workers,max_worker_count,notify_user_ids,enable,dispatch_strategy,lifecycle,alert_threshold,statistic_window_len,silence_window_len,log_type,log_level,extra,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>job_server_id,job_id,job_name,job_description,job_params,time_expression_type,time_expression,execute_type,processor_type,processor_info,max_instance_num,concurrency,instance_time_limit,instance_retry_num,task_retry_num,min_cpu_cores,min_memory_space,min_disk_space,designated_workers,max_worker_count,notify_user_ids,enable,dispatch_strategy,lifecycle,alert_threshold,statistic_window_len,silence_window_len,log_type,log_level,extra,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_job_server_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_job_server</srcSql>--> |
| | | <!-- <destTable>blade_job_server</destTable>--> |
| | | <!-- <destTableFields>id,job_server_name,job_server_url,job_app_name,job_app_password,job_remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>job_server_name,job_server_url,job_app_name,job_app_password,job_remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_log_api_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_log_api</srcSql>--> |
| | | <!-- <destTable>blade_log_api</destTable>--> |
| | | <!-- <destTableFields>id,tenant_id,service_id,server_host,server_ip,env,type,title,method,request_uri,user_agent,remote_ip,method_class,method_name,params,time,create_by,create_time</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>tenant_id,service_id,server_host,server_ip,env,type,title,method,request_uri,user_agent,remote_ip,method_class,method_name,params,time,create_by,create_time</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_log_error_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_log_error</srcSql>--> |
| | | <!-- <destTable>blade_log_error</destTable>--> |
| | | <!-- <destTableFields>id,tenant_id,service_id,server_host,server_ip,env,method,request_uri,user_agent,stack_trace,exception_name,message,line_number,remote_ip,method_class,file_name,method_name,params,create_by,create_time</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>tenant_id,service_id,server_host,server_ip,env,method,request_uri,user_agent,stack_trace,exception_name,message,line_number,remote_ip,method_class,file_name,method_name,params,create_by,create_time</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_log_usual_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_log_usual</srcSql>--> |
| | | <!-- <destTable>blade_log_usual</destTable>--> |
| | | <!-- <destTableFields>id,tenant_id,service_id,server_host,server_ip,env,log_level,log_id,log_data,method,request_uri,remote_ip,method_class,method_name,user_agent,params,create_by,create_time</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>tenant_id,service_id,server_host,server_ip,env,log_level,log_id,log_data,method,request_uri,remote_ip,method_class,method_name,user_agent,params,create_by,create_time</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_menu_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_menu</srcSql>--> |
| | | <!-- <destTable>blade_menu</destTable>--> |
| | | <!-- <destTableFields>id,parent_id,code,name,alias,path,source,sort,category,sys_type,action,is_open,is_device,component,remark,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>parent_id,code,name,alias,path,source,sort,category,sys_type,action,is_open,is_device,component,remark,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_model_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_model</srcSql>--> |
| | | <!-- <destTable>blade_model</destTable>--> |
| | | <!-- <destTableFields>id,datasource_id,model_name,model_code,model_table,model_class,model_remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>datasource_id,model_name,model_code,model_table,model_class,model_remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_model_prototype_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_model_prototype</srcSql>--> |
| | | <!-- <destTable>blade_model_prototype</destTable>--> |
| | | <!-- <destTableFields>id,model_id,jdbc_name,jdbc_type,jdbc_comment,property_type,property_entity,property_name,is_list,is_form,is_row,component_type,dict_code,is_required,is_query,query_type,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>model_id,jdbc_name,jdbc_type,jdbc_comment,property_type,property_entity,property_name,is_list,is_form,is_row,component_type,dict_code,is_required,is_query,query_type,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_notice_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_notice</srcSql>--> |
| | | <!-- <destTable>blade_notice</destTable>--> |
| | | <!-- <destTableFields>id,tenant_id,title,category,release_time,content,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>tenant_id,title,category,release_time,content,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_oss_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_oss</srcSql>--> |
| | | <!-- <destTable>blade_oss</destTable>--> |
| | | <!-- <destTableFields>id,tenant_id,category,oss_code,endpoint,transform_endpoint,access_key,secret_key,bucket_name,app_id,region,remark,is_def,expire,object_dir_prefix,name,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>tenant_id,category,oss_code,endpoint,transform_endpoint,access_key,secret_key,bucket_name,app_id,region,remark,is_def,expire,object_dir_prefix,name,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_param_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_param</srcSql>--> |
| | | <!-- <destTable>blade_param</destTable>--> |
| | | <!-- <destTableFields>id,param_name,param_key,param_value,remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>param_name,param_key,param_value,remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_post_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_post</srcSql>--> |
| | | <!-- <destTable>blade_post</destTable>--> |
| | | <!-- <destTableFields>id,tenant_id,category,post_code,post_name,sort,remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>tenant_id,category,post_code,post_name,sort,remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_process_leave_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_process_leave</srcSql>--> |
| | | <!-- <destTable>blade_process_leave</destTable>--> |
| | | <!-- <destTableFields>id,process_definition_id,process_instance_id,start_time,end_time,reason,task_user,apply_time,attach_url,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>process_definition_id,process_instance_id,start_time,end_time,reason,task_user,apply_time,attach_url,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_region_sync</name>--> |
| | | <!-- <cron>00 56 15 06 02 ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_region limit 650000,100000</srcSql>--> |
| | | <!-- <destTable>blade_region</destTable>--> |
| | | <!-- <destTableFields>id,code,parent_code,ancestors,name,province_code,province_name,city_code,city_name,district_code,district_name,town_code,town_name,village_code,village_name,region_level,type,sort,remark,status,create_time,update_time</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>code,parent_code,ancestors,name,province_code,province_name,city_code,city_name,district_code,district_name,town_code,town_name,village_code,village_name,region_level,type,sort,remark,status,create_time,update_time</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_report_file_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_report_file</srcSql>--> |
| | | <!-- <destTable>blade_report_file</destTable>--> |
| | | <!-- <destTableFields>id,name,content,create_time,update_time,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>name,content,create_time,update_time,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_role_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_role</srcSql>--> |
| | | <!-- <destTable>blade_role</destTable>--> |
| | | <!-- <destTableFields>id,tenant_id,parent_id,role_name,sort,role_alias,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>tenant_id,parent_id,role_name,sort,role_alias,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_role_menu_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_role_menu</srcSql>--> |
| | | <!-- <destTable>blade_role_menu</destTable>--> |
| | | <!-- <destTableFields>id,menu_id,role_id</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>menu_id,role_id</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_role_scope_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_role_scope</srcSql>--> |
| | | <!-- <destTable>blade_role_scope</destTable>--> |
| | | <!-- <destTableFields>id,scope_category,scope_id,role_id</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>scope_category,scope_id,role_id</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_scope_api_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_scope_api</srcSql>--> |
| | | <!-- <destTable>blade_scope_api</destTable>--> |
| | | <!-- <destTableFields>id,menu_id,resource_code,scope_name,scope_path,scope_type,remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>menu_id,resource_code,scope_name,scope_path,scope_type,remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_scope_data_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_scope_data</srcSql>--> |
| | | <!-- <destTable>blade_scope_data</destTable>--> |
| | | <!-- <destTableFields>id,menu_id,resource_code,scope_name,scope_field,scope_class,scope_column,scope_type,scope_value,remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>menu_id,resource_code,scope_name,scope_field,scope_class,scope_column,scope_type,scope_value,remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_sms_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_sms</srcSql>--> |
| | | <!-- <destTable>blade_sms</destTable>--> |
| | | <!-- <destTableFields>id,tenant_id,category,sms_code,template_id,access_key,secret_key,region_id,sign_name,remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>tenant_id,category,sms_code,template_id,access_key,secret_key,region_id,sign_name,remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_tenant_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_tenant</srcSql>--> |
| | | <!-- <destTable>blade_tenant</destTable>--> |
| | | <!-- <destTableFields>id,tenant_id,tenant_name,domain_url,background_url,linkman,contact_number,address,account_number,expire_time,package_id,datasource_id,license_key,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>tenant_id,tenant_name,domain_url,background_url,linkman,contact_number,address,account_number,expire_time,package_id,datasource_id,license_key,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_tenant_package_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_tenant_package</srcSql>--> |
| | | <!-- <destTable>blade_tenant_package</destTable>--> |
| | | <!-- <destTableFields>id,package_name,menu_id,remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>package_name,menu_id,remark,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_top_menu_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_top_menu</srcSql>--> |
| | | <!-- <destTable>blade_top_menu</destTable>--> |
| | | <!-- <destTableFields>id,tenant_id,code,name,source,sort,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>tenant_id,code,name,source,sort,create_user,create_dept,create_time,update_user,update_time,status,is_deleted</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_top_menu_setting_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_top_menu_setting</srcSql>--> |
| | | <!-- <destTable>blade_top_menu_setting</destTable>--> |
| | | <!-- <destTableFields>id,top_menu_id,menu_id</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>top_menu_id,menu_id</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_user_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_user</srcSql>--> |
| | | <!-- <destTable>blade_user</destTable>--> |
| | | <!-- <destTableFields>id,tenant_id,code,user_type,account,password,name,real_name,avatar,email,phone,birthday,sex,role_id,dept_id,post_id,flight_start_time,flight_end_time,max_login_num,expire_time,create_user,create_dept,create_time,update_user,update_time,status,is_deleted,area_code</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>tenant_id,code,user_type,account,password,name,real_name,avatar,email,phone,birthday,sex,role_id,dept_id,post_id,flight_start_time,flight_end_time,max_login_num,expire_time,create_user,create_dept,create_time,update_user,update_time,status,is_deleted,area_code</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_user_app_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_user_app</srcSql>--> |
| | | <!-- <destTable>blade_user_app</destTable>--> |
| | | <!-- <destTableFields>id,user_id,user_ext</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>user_id,user_ext</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_user_dept_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_user_dept</srcSql>--> |
| | | <!-- <destTable>blade_user_dept</destTable>--> |
| | | <!-- <destTableFields>id,user_id,dept_id</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>user_id,dept_id</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_user_oauth_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_user_oauth</srcSql>--> |
| | | <!-- <destTable>blade_user_oauth</destTable>--> |
| | | <!-- <destTableFields>id,tenant_id,uuid,user_id,username,nickname,avatar,blog,company,location,email,remark,gender,source</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>tenant_id,uuid,user_id,username,nickname,avatar,blog,company,location,email,remark,gender,source</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_user_other_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_user_other</srcSql>--> |
| | | <!-- <destTable>blade_user_other</destTable>--> |
| | | <!-- <destTableFields>id,user_id,user_ext</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>user_id,user_ext</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>blade_user_web_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from blade_user_web</srcSql>--> |
| | | <!-- <destTable>blade_user_web</destTable>--> |
| | | <!-- <destTableFields>id,user_id,user_ext</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>user_id,user_ext</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | <!-- <job>--> |
| | | <!-- <name>help_center_sync</name>--> |
| | | <!-- <cron>0/10 * * * * ?</cron>--> |
| | | <!-- <srcSql>SELECT * from help_center</srcSql>--> |
| | | <!-- <destTable>help_center</destTable>--> |
| | | <!-- <destTableFields>id,level_one_type,level_two_type,upload_user,create_time,file_path</destTableFields>--> |
| | | <!-- <destTableKey>id</destTableKey>--> |
| | | <!-- <destTableUpdate>level_one_type,level_two_type,upload_user,create_time,file_path</destTableUpdate>--> |
| | | <!-- </job>--> |
| | | </jobs> |
| | | </root> |
| New file |
| | |
| | | <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| | | xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
| | | <modelVersion>4.0.0</modelVersion> |
| | | |
| | | <groupId>cn.net.communion</groupId> |
| | | <artifactId>dbdatasync</artifactId> |
| | | <version>0.0.1-SNAPSHOT</version> |
| | | <packaging>jar</packaging> |
| | | |
| | | <name>dbdatasync</name> |
| | | <url>http://maven.apache.org</url> |
| | | |
| | | <properties> |
| | | <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
| | | </properties> |
| | | |
| | | <dependencies> |
| | | <dependency> |
| | | <groupId>junit</groupId> |
| | | <artifactId>junit</artifactId> |
| | | <version>3.8.1</version> |
| | | <scope>test</scope> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>dom4j</groupId> |
| | | <artifactId>dom4j</artifactId> |
| | | <version>1.6.1</version> |
| | | </dependency> |
| | | <!-- MySQL 驱动 --> |
| | | <dependency> |
| | | <groupId>mysql</groupId> |
| | | <artifactId>mysql-connector-java</artifactId> |
| | | <version>8.0.33</version> |
| | | </dependency> |
| | | |
| | | <!-- PostgreSQL 驱动 --> |
| | | <dependency> |
| | | <groupId>org.postgresql</groupId> |
| | | <artifactId>postgresql</artifactId> |
| | | <version>42.6.0</version> |
| | | </dependency> |
| | | |
| | | <dependency> |
| | | <groupId>org.quartz-scheduler</groupId> |
| | | <artifactId>quartz</artifactId> |
| | | <version>2.1.3</version> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>log4j</groupId> |
| | | <artifactId>log4j</artifactId> |
| | | <version>1.2.14</version> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>org.slf4j</groupId> |
| | | <artifactId>slf4j-api</artifactId> |
| | | <version>1.7.5</version> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>org.slf4j</groupId> |
| | | <artifactId>slf4j-simple</artifactId> |
| | | <version>1.6.4</version> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>org.slf4j</groupId> |
| | | <artifactId>slf4j-log4j12</artifactId> |
| | | <version>1.7.5</version> |
| | | </dependency> |
| | | </dependencies> |
| | | |
| | | <build> |
| | | <plugins> |
| | | <plugin> |
| | | <groupId>org.apache.maven.plugins</groupId> |
| | | <artifactId>maven-jar-plugin</artifactId> |
| | | <configuration> |
| | | <archive> |
| | | <manifest> |
| | | <addClasspath>true</addClasspath> |
| | | <classpathPrefix>lib/</classpathPrefix> |
| | | <mainClass>cn.net.communion.dbdatasync.App</mainClass> |
| | | </manifest> |
| | | </archive> |
| | | </configuration> |
| | | </plugin> |
| | | <plugin> |
| | | <groupId>org.apache.maven.plugins</groupId> |
| | | <artifactId>maven-dependency-plugin</artifactId> |
| | | <executions> |
| | | <execution> |
| | | <id>copy</id> |
| | | <phase>package</phase> |
| | | <goals> |
| | | <goal>copy-dependencies</goal> |
| | | </goals> |
| | | <configuration> |
| | | <outputDirectory>${project.build.directory}/lib</outputDirectory> |
| | | </configuration> |
| | | </execution> |
| | | </executions> |
| | | </plugin> |
| | | |
| | | <plugin> |
| | | <groupId>org.mortbay.jetty</groupId> |
| | | <artifactId>maven-jetty-plugin</artifactId> |
| | | <version>6.1.10</version> |
| | | |
| | | </plugin> |
| | | </plugins> |
| | | <resources> |
| | | <resource> |
| | | <directory>src/main/java</directory> |
| | | <includes> |
| | | <include>**/*.properties</include> |
| | | <include>**/*.xml</include> |
| | | </includes> |
| | | <filtering>true</filtering> |
| | | </resource> |
| | | </resources> |
| | | </build> |
| | | </project> |
| New file |
| | |
| | | package cn.net.communion.dbdatasync; |
| | | |
| | | import java.lang.reflect.Field; |
| | | import java.sql.Connection; |
| | | import java.sql.DriverManager; |
| | | import java.sql.PreparedStatement; |
| | | import java.sql.ResultSet; |
| | | import java.sql.SQLException; |
| | | import java.util.ArrayList; |
| | | import java.util.Enumeration; |
| | | import java.util.Iterator; |
| | | import java.util.List; |
| | | |
| | | import org.apache.log4j.Level; |
| | | import org.apache.log4j.LogManager; |
| | | import org.apache.log4j.Logger; |
| | | import org.dom4j.Document; |
| | | import org.dom4j.DocumentException; |
| | | import org.dom4j.Element; |
| | | import org.dom4j.io.SAXReader; |
| | | import org.quartz.CronTrigger; |
| | | import org.quartz.JobDetail; |
| | | import org.quartz.Scheduler; |
| | | import org.quartz.SchedulerException; |
| | | import org.quartz.SchedulerFactory; |
| | | import org.quartz.impl.StdSchedulerFactory; |
| | | |
| | | import static org.quartz.CronScheduleBuilder.cronSchedule; |
| | | import static org.quartz.TriggerBuilder.newTrigger; |
| | | import static org.quartz.JobBuilder.newJob; |
| | | import cn.net.communion.dbdatasync.dbhelper.Factory; |
| | | import cn.net.communion.dbdatasync.entity.DbInfo; |
| | | import cn.net.communion.dbdatasync.entity.JobInfo; |
| | | /** |
| | | * 读取xml配置文件 |
| | | * @author Administrator |
| | | * |
| | | */ |
| | | public class App |
| | | { |
| | | |
| | | private DbInfo srcDb; |
| | | private DbInfo destDb; |
| | | private List<JobInfo> jobList; |
| | | private String code; |
| | | private static Logger logger = Logger.getLogger(App.class); |
| | | |
| | | public void init(){ |
| | | |
| | | srcDb = new DbInfo(); |
| | | destDb = new DbInfo(); |
| | | jobList = new ArrayList<JobInfo>(); |
| | | SAXReader reader = new SAXReader(); |
| | | try { |
| | | //读取xml的配置文件名,并获取其里面的节点 |
| | | Element root = reader.read("jobs.xml").getRootElement(); |
| | | Element src = root.element("source"); |
| | | Element dest = root.element("dest"); |
| | | Element jobs = root.element("jobs"); |
| | | //遍历job即同步的表 |
| | | for(Iterator it = jobs.elementIterator("job"); it.hasNext();){ |
| | | jobList.add((JobInfo) elementInObject((Element)it.next(), new JobInfo())); |
| | | } |
| | | // |
| | | elementInObject(src, srcDb); |
| | | elementInObject(dest, destDb); |
| | | code = root.element("code").getTextTrim(); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | public Object elementInObject(Element e, Object o) throws IllegalArgumentException, IllegalAccessException{ |
| | | Field[] fields = o.getClass().getDeclaredFields(); |
| | | for(int index = 0; index < fields.length; index++){ |
| | | fields[index].setAccessible(true); |
| | | fields[index].set(o, e.element(fields[index].getName()).getTextTrim()); |
| | | } |
| | | return o; |
| | | } |
| | | |
| | | public void start(){ |
| | | for(int index = 0; index < jobList.size(); index++){ |
| | | JobInfo jobInfo = jobList.get(index); |
| | | String logTitle = "[" + code + "]" + jobInfo.getName() + " "; |
| | | try{ |
| | | SchedulerFactory sf = new StdSchedulerFactory(); |
| | | Scheduler sched = sf.getScheduler(); |
| | | JobDetail job = newJob(DataTask.class).withIdentity("job-" + jobInfo.getName(), code).build(); |
| | | job.getJobDataMap().put("srcDb", srcDb); |
| | | job.getJobDataMap().put("destDb", destDb); |
| | | job.getJobDataMap().put("jobInfo", jobInfo); |
| | | job.getJobDataMap().put("logTitle", logTitle); |
| | | logger.info(jobInfo.getCron()); |
| | | CronTrigger trigger = newTrigger() |
| | | .withIdentity("trigger-" + jobInfo.getName(), code) |
| | | .withSchedule(cronSchedule(jobInfo.getCron())).build(); |
| | | sched.scheduleJob(job, trigger); |
| | | sched.start(); |
| | | }catch(Exception e){ |
| | | logger.info(logTitle + e.getMessage()); |
| | | logger.info(logTitle + " run failed"); |
| | | continue; |
| | | } |
| | | } |
| | | } |
| | | public static void main(String[] args ) |
| | | { |
| | | App app = new App(); |
| | | app.init(); |
| | | app.start(); |
| | | |
| | | } |
| | | |
| | | } |
| New file |
| | |
| | | package cn.net.communion.dbdatasync; |
| | | |
| | | import cn.net.communion.dbdatasync.dbhelper.DbHelper; |
| | | import cn.net.communion.dbdatasync.dbhelper.Factory; |
| | | import cn.net.communion.dbdatasync.entity.DbInfo; |
| | | import cn.net.communion.dbdatasync.entity.JobInfo; |
| | | |
| | | import java.sql.Connection; |
| | | import java.sql.DriverManager; |
| | | import java.sql.SQLException; |
| | | import java.util.Date; |
| | | |
| | | import org.apache.log4j.Logger; |
| | | import org.quartz.Job; |
| | | import org.quartz.JobDataMap; |
| | | import org.quartz.JobExecutionContext; |
| | | import org.quartz.JobExecutionException; |
| | | |
| | | public class DataTask implements Job { |
| | | private Logger logger = Logger.getLogger(DataTask.class); |
| | | |
| | | @Override |
| | | public void execute(JobExecutionContext context) throws JobExecutionException { |
| | | logger.info("开始任务调度: " + new Date()); |
| | | Connection inConn = null; |
| | | Connection outConn = null; |
| | | JobDataMap data = context.getJobDetail().getJobDataMap(); |
| | | DbInfo srcDb = (DbInfo) data.get("srcDb"); |
| | | DbInfo destDb = (DbInfo) data.get("destDb"); |
| | | JobInfo jobInfo = (JobInfo) data.get("jobInfo"); |
| | | String logTitle = (String) data.get("logTitle"); |
| | | |
| | | try { |
| | | // 校验任务信息 |
| | | if (jobInfo == null || jobInfo.getSrcSql() == null || jobInfo.getSrcSql().isEmpty()) { |
| | | logger.error("任务 SQL 语句为空,请检查配置"); |
| | | return; |
| | | } |
| | | |
| | | // 创建数据库连接 |
| | | inConn = createConnection(srcDb); |
| | | outConn = createConnection(destDb); |
| | | if (inConn == null || outConn == null) { |
| | | logger.error("数据库连接失败,请检查配置"); |
| | | return; |
| | | } |
| | | |
| | | // 拼接并执行 SQL |
| | | DbHelper dbHelper = Factory.create(destDb.getDbtype()); |
| | | long start = new Date().getTime(); |
| | | |
| | | logger.debug("srcDb: " + srcDb); |
| | | logger.debug("destDb: " + destDb); |
| | | logger.debug("jobInfo: " + jobInfo); |
| | | logger.debug("dbHelper: " + dbHelper); |
| | | |
| | | if (dbHelper == null) { |
| | | logger.error("无法创建 DbHelper 实例,请检查数据库类型配置"); |
| | | return; |
| | | } |
| | | |
| | | String sql = dbHelper.assembleSQL(jobInfo.getSrcSql(), inConn, jobInfo); |
| | | logger.info("组装SQL耗时: " + (new Date().getTime() - start) + "ms"); |
| | | if (sql != null) { |
| | | logger.debug("Generated SQL: " + sql); |
| | | long eStart = new Date().getTime(); |
| | | dbHelper.executeSQL(sql, outConn); |
| | | outConn.commit(); // 提交事务 |
| | | logger.info("执行SQL语句耗时: " + (new Date().getTime() - eStart) + "ms"); |
| | | } |
| | | } catch (SQLException e) { |
| | | logger.error(logTitle + " SQL执行出错: " + e.getMessage()); |
| | | try { |
| | | if (outConn != null) outConn.rollback(); // 回滚事务 |
| | | } catch (SQLException rollbackEx) { |
| | | logger.error("事务回滚失败: " + rollbackEx.getMessage()); |
| | | } |
| | | } finally { |
| | | destoryConnection(inConn); // 关闭源数据库连接 |
| | | destoryConnection(outConn); // 关闭目标数据库连接 |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 创建数据库连接 |
| | | * |
| | | * @param db 数据库配置信息 |
| | | * @return 数据库连接对象,失败返回 null |
| | | */ |
| | | private Connection createConnection(DbInfo db) { |
| | | try { |
| | | Class.forName(db.getDriver()); |
| | | Connection conn = DriverManager.getConnection(db.getUrl(), db.getUsername(), db.getPassword()); |
| | | conn.setAutoCommit(false); |
| | | return conn; |
| | | } catch (Exception e) { |
| | | logger.error("数据库连接创建失败: " + e.getMessage()); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | /** |
| | | * 关闭数据库连接 |
| | | * |
| | | * @param conn 数据库连接对象 |
| | | */ |
| | | private void destoryConnection(Connection conn) { |
| | | try { |
| | | if (conn != null) { |
| | | conn.close(); |
| | | logger.info("数据库连接已关闭"); |
| | | } |
| | | } catch (SQLException e) { |
| | | logger.error("关闭数据库连接失败: " + e.getMessage()); |
| | | } |
| | | } |
| | | } |
| New file |
| | |
| | | package cn.net.communion.dbdatasync; |
| | | |
| | | public class Tool { |
| | | public static String generateString(int length){ |
| | | if(length < 1) length = 6; |
| | | String str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; |
| | | String genStr = ""; |
| | | for(int index = 0; index < length; index++) |
| | | { |
| | | genStr = genStr + str.charAt((int) ((Math.random() * 100) % 26)); |
| | | } |
| | | // System.out.println(genStr); |
| | | return genStr; |
| | | } |
| | | } |
| New file |
| | |
| | | package cn.net.communion.dbdatasync.dbhelper; |
| | | |
| | | import java.sql.Connection; |
| | | import java.sql.SQLException; |
| | | |
| | | import cn.net.communion.dbdatasync.entity.JobInfo; |
| | | |
| | | public interface DbHelper { |
| | | public String assembleSQL(String paramString, Connection paramConnection, JobInfo paramJobInfo) |
| | | throws SQLException; |
| | | public void executeSQL(String sql, Connection conn) |
| | | throws SQLException; |
| | | |
| | | } |
| New file |
| | |
| | | package cn.net.communion.dbdatasync.dbhelper; |
| | | |
| | | import cn.net.communion.dbdatasync.dbhelper.impl.MySql; |
| | | import cn.net.communion.dbdatasync.dbhelper.impl.PostgreSql; |
| | | import cn.net.communion.dbdatasync.dbhelper.impl.SqlServer; |
| | | |
| | | public class Factory { |
| | | public static DbHelper create(String dbType) { |
| | | switch (dbType.toLowerCase()) { |
| | | case "mysql": |
| | | return new MySql(); |
| | | case "postgresql": |
| | | return new PostgreSql(); |
| | | default: |
| | | throw new IllegalArgumentException("Unsupported database type: " + dbType); |
| | | } |
| | | } |
| | | } |
| New file |
| | |
| | | package cn.net.communion.dbdatasync.dbhelper.impl; |
| | | |
| | | import cn.net.communion.dbdatasync.Tool; |
| | | import cn.net.communion.dbdatasync.dbhelper.DbHelper; |
| | | import cn.net.communion.dbdatasync.entity.JobInfo; |
| | | |
| | | import java.sql.Connection; |
| | | import java.sql.PreparedStatement; |
| | | import java.sql.ResultSet; |
| | | import java.sql.SQLException; |
| | | |
| | | import org.apache.log4j.Logger; |
| | | |
| | | public class MySql implements DbHelper { |
| | | private Logger logger = Logger.getLogger(MySql.class); |
| | | |
| | | public String assembleSQL(String srcSql, Connection conn, JobInfo jobInfo) throws SQLException { |
| | | String uniqueName = Tool.generateString(6) + "_" + jobInfo.getName(); |
| | | String[] fields = jobInfo.getDestTableFields().split(","); |
| | | String[] updateFields = jobInfo.getDestTableUpdate().split(","); |
| | | String destTable = jobInfo.getDestTable(); |
| | | String destTableKey = jobInfo.getDestTableKey(); |
| | | PreparedStatement pst = conn.prepareStatement(srcSql); |
| | | ResultSet rs = pst.executeQuery(); |
| | | StringBuffer sql = new StringBuffer(); |
| | | sql.append("insert into ").append(jobInfo.getDestTable()).append(" (").append(jobInfo.getDestTableFields()).append(") values "); |
| | | long count = 0; |
| | | while (rs.next()) { |
| | | sql.append("("); |
| | | for (int index = 0; index < fields.length; index++) { |
| | | sql.append("'").append(rs.getString(fields[index])).append(index == (fields.length - 1) ? "'" : "',"); |
| | | } |
| | | sql.append("),"); |
| | | count++; |
| | | } |
| | | if (rs != null) { |
| | | rs.close(); |
| | | } |
| | | if (pst != null) { |
| | | pst.close(); |
| | | } |
| | | if (count > 0) { |
| | | sql = sql.deleteCharAt(sql.length() - 1); |
| | | if ((!jobInfo.getDestTableUpdate().equals("")) && (!jobInfo.getDestTableKey().equals(""))) { |
| | | sql.append(" on duplicate key update "); |
| | | for (int index = 0; index < updateFields.length; index++) { |
| | | sql.append(updateFields[index]).append("= values(").append(updateFields[index]).append(index == (updateFields.length - 1) ? ")" : "),"); |
| | | } |
| | | return new StringBuffer("alter table ").append(destTable).append(" add constraint ").append(uniqueName).append(" unique (").append(destTableKey).append(");").append(sql.toString()) |
| | | .append(";alter table ").append(destTable).append(" drop index ").append(uniqueName).toString(); |
| | | } |
| | | return sql.toString(); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | public void executeSQL(String sql, Connection conn) throws SQLException { |
| | | PreparedStatement pst = conn.prepareStatement(""); |
| | | String[] sqlList = sql.split(";"); |
| | | for (int index = 0; index < sqlList.length; index++) { |
| | | pst.addBatch(sqlList[index]); |
| | | } |
| | | pst.executeBatch(); |
| | | conn.commit(); |
| | | pst.close(); |
| | | } |
| | | } |
| New file |
| | |
| | | package cn.net.communion.dbdatasync.dbhelper.impl; |
| | | |
| | | import cn.net.communion.dbdatasync.dbhelper.DbHelper; |
| | | import cn.net.communion.dbdatasync.entity.JobInfo; |
| | | import org.apache.log4j.Logger; |
| | | |
| | | import java.sql.Connection; |
| | | import java.sql.PreparedStatement; |
| | | import java.sql.ResultSet; |
| | | import java.sql.SQLException; |
| | | import java.util.List; |
| | | |
| | | public class PostgreSql implements DbHelper { |
| | | private Logger logger = Logger.getLogger(PostgreSql.class); |
| | | |
| | | @Override |
| | | public String assembleSQL(String srcSql, Connection conn, JobInfo jobInfo) throws SQLException { |
| | | String[] fields = jobInfo.getDestTableFields().split(","); |
| | | String destTable = jobInfo.getDestTable(); |
| | | |
| | | PreparedStatement pst = conn.prepareStatement(srcSql); |
| | | ResultSet rs = pst.executeQuery(); |
| | | StringBuilder sql = new StringBuilder(); |
| | | sql.append("INSERT INTO ").append(destTable).append(" (").append(jobInfo.getDestTableFields()).append(") VALUES "); |
| | | |
| | | long count = 0; |
| | | while (rs.next()) { |
| | | sql.append("("); |
| | | for (int index = 0; index < fields.length; index++) { |
| | | String value = rs.getString(fields[index]); |
| | | if (value == null) { |
| | | sql.append("NULL"); // 显式处理 NULL 值 |
| | | } else { |
| | | sql.append("'").append(value).append("'"); // 字符串值加引号 |
| | | } |
| | | if (index < fields.length - 1) { |
| | | sql.append(", "); |
| | | } |
| | | } |
| | | sql.append("),"); |
| | | count++; |
| | | } |
| | | |
| | | if (rs != null) { |
| | | rs.close(); |
| | | } |
| | | if (pst != null) { |
| | | pst.close(); |
| | | } |
| | | |
| | | if (count > 0) { |
| | | sql = new StringBuilder(sql.substring(0, sql.length() - 1)); // 删除最后一个逗号 |
| | | return sql.toString(); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | |
| | | |
| | | @Override |
| | | public void executeSQL(String sql, Connection conn) throws SQLException { |
| | | logger.debug("Executing SQL: " + sql); |
| | | try (PreparedStatement pst = conn.prepareStatement(sql)) { |
| | | pst.execute(); |
| | | conn.commit(); |
| | | } |
| | | } |
| | | |
| | | // 辅助方法:设置参数 |
| | | private void setParameters(PreparedStatement pst, List<Object> params) throws SQLException { |
| | | for (int i = 0; i < params.size(); i++) { |
| | | pst.setObject(i + 1, params.get(i)); |
| | | } |
| | | } |
| | | |
| | | // 辅助方法:序列化 SQL 和参数 |
| | | private String serializeSqlWithParams(List<String> sqlStatements, List<List<Object>> paramLists) { |
| | | StringBuilder result = new StringBuilder(); |
| | | for (int i = 0; i < sqlStatements.size(); i++) { |
| | | result.append(sqlStatements.get(i)).append("; "); |
| | | } |
| | | return result.toString(); |
| | | } |
| | | } |
| New file |
| | |
| | | package cn.net.communion.dbdatasync.dbhelper.impl; |
| | | |
| | | import cn.net.communion.dbdatasync.dbhelper.DbHelper; |
| | | import cn.net.communion.dbdatasync.entity.JobInfo; |
| | | |
| | | import java.sql.Connection; |
| | | import java.sql.PreparedStatement; |
| | | import java.sql.ResultSet; |
| | | import java.sql.SQLException; |
| | | import java.sql.Statement; |
| | | import java.util.Date; |
| | | import java.util.HashMap; |
| | | import java.util.Map; |
| | | |
| | | import org.apache.log4j.Logger; |
| | | |
| | | public class SqlServer implements DbHelper { |
| | | private Logger logger = Logger.getLogger(SqlServer.class); |
| | | |
| | | public String assembleSQL(String srcSql, Connection conn, JobInfo jobInfo) throws SQLException { |
| | | String fieldStr = jobInfo.getDestTableFields(); |
| | | String[] fields = jobInfo.getDestTableFields().split(","); |
| | | String[] updateFields = jobInfo.getDestTableUpdate().split(","); |
| | | String destTableKey = jobInfo.getDestTableKey(); |
| | | String destTable = jobInfo.getDestTable(); |
| | | Statement stat = conn.createStatement(); |
| | | ResultSet rs = stat.executeQuery(srcSql); |
| | | StringBuffer sql = new StringBuffer(); |
| | | long count = 0; |
| | | while (rs.next()) { |
| | | sql.append("if not exists (select ").append(destTableKey).append(" from ").append(destTable).append(" where ").append(destTableKey).append("='").append(rs.getString(destTableKey)) |
| | | .append("')").append("insert into ").append(destTable).append("(").append(fieldStr).append(") values("); |
| | | for (int index = 0; index < fields.length; index++) { |
| | | sql.append("'").append(rs.getString(fields[index])).append(index == (fields.length - 1) ? "'" : "',"); |
| | | } |
| | | sql.append(") else update ").append(destTable).append(" set "); |
| | | for (int index = 0; index < updateFields.length; index++) { |
| | | sql.append(updateFields[index]).append("='").append(rs.getString(updateFields[index])).append(index == (updateFields.length - 1) ? "'" : "',"); |
| | | } |
| | | sql.append(" where ").append(destTableKey).append("='").append(rs.getString(destTableKey)).append("';"); |
| | | count++; |
| | | // this.logger.info("第" + count + "耗时: " + (new Date().getTime() - oneStart) + "ms"); |
| | | } |
| | | this.logger.info("总共查询到 " + count + " 条记录"); |
| | | if (rs != null) { |
| | | rs.close(); |
| | | } |
| | | if (stat != null) { |
| | | stat.close(); |
| | | } |
| | | return count > 0 ? sql.toString() : null; |
| | | } |
| | | |
| | | public void executeSQL(String sql, Connection conn) throws SQLException { |
| | | PreparedStatement pst = conn.prepareStatement(sql); |
| | | pst.executeUpdate(); |
| | | conn.commit(); |
| | | pst.close(); |
| | | } |
| | | } |
| New file |
| | |
| | | package cn.net.communion.dbdatasync.entity; |
| | | |
| | | public class DbInfo extends Throwable { |
| | | String url; |
| | | String username; |
| | | String password; |
| | | String dbtype; |
| | | String driver; |
| | | |
| | | public String getUrl() { |
| | | return url; |
| | | } |
| | | public void setUrl(String url) { |
| | | this.url = url; |
| | | } |
| | | public String getUsername() { |
| | | return username; |
| | | } |
| | | public void setUsername(String username) { |
| | | this.username = username; |
| | | } |
| | | public String getPassword() { |
| | | return password; |
| | | } |
| | | public void setPassword(String password) { |
| | | this.password = password; |
| | | } |
| | | public String getDbtype() { |
| | | return dbtype; |
| | | } |
| | | public void setDbtype(String dbtype) { |
| | | this.dbtype = dbtype; |
| | | } |
| | | public String getDriver() { |
| | | return driver; |
| | | } |
| | | public void setDriver(String driver) { |
| | | this.driver = driver; |
| | | } |
| | | } |
| New file |
| | |
| | | package cn.net.communion.dbdatasync.entity; |
| | | |
| | | public class JobInfo extends Throwable { |
| | | String name; |
| | | String cron; |
| | | String srcSql; |
| | | String destTable; |
| | | String destTableFields; |
| | | String destTableKey; |
| | | String destTableUpdate; |
| | | |
| | | public String getName() { |
| | | return name; |
| | | } |
| | | public void setName(String name) { |
| | | this.name = name; |
| | | } |
| | | public String getCron() { |
| | | return cron; |
| | | } |
| | | public void setCron(String cron) { |
| | | this.cron = cron; |
| | | } |
| | | public String getSrcSql() { |
| | | return srcSql; |
| | | } |
| | | public void setSrcSql(String srcSql) { |
| | | this.srcSql = srcSql; |
| | | } |
| | | public String getDestTable() { |
| | | return destTable; |
| | | } |
| | | public void setDestTable(String destTable) { |
| | | this.destTable = destTable; |
| | | } |
| | | public String getDestTableFields() { |
| | | return destTableFields; |
| | | } |
| | | public void setDestTableFields(String destTableFields) { |
| | | this.destTableFields = destTableFields; |
| | | } |
| | | public String getDestTableKey() { |
| | | return destTableKey; |
| | | } |
| | | public void setDestTableKey(String destTableKey) { |
| | | this.destTableKey = destTableKey; |
| | | } |
| | | public String getDestTableUpdate() { |
| | | return destTableUpdate; |
| | | } |
| | | public void setDestTableUpdate(String destTableUpdate) { |
| | | this.destTableUpdate = destTableUpdate; |
| | | } |
| | | } |
| New file |
| | |
| | | # ????????? UTF-8 |
| | | log4j.appender.A1.Encoding=UTF-8 |
| | | log4j.appender.A2.Encoding=UTF-8 |
| | | |
| | | # ?????? |
| | | log4j.rootCategory=INFO,A1,A2 |
| | | log4j.logger.cn.net.communion.dbdatasync=DEBUG |
| | | |
| | | # ????? |
| | | log4j.appender.A1=org.apache.log4j.ConsoleAppender |
| | | log4j.appender.A1.layout=org.apache.log4j.PatternLayout |
| | | log4j.appender.A1.layout.ConversionPattern=[%d{ISO8601}] %-5p [%t] %C{1}:%L - %m%n |
| | | |
| | | # ???? |
| | | log4j.appender.A2=org.apache.log4j.RollingFileAppender |
| | | log4j.appender.A2.File=./databaseSync.log |
| | | log4j.appender.A2.MaxFileSize=50MB |
| | | log4j.appender.A2.MaxBackupIndex=20 |
| | | log4j.appender.A2.layout=org.apache.log4j.PatternLayout |
| | | log4j.appender.A2.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c - %m%n |
| New file |
| | |
| | | package cn.net.communion.dbdatasync; |
| | | |
| | | import junit.framework.Test; |
| | | import junit.framework.TestCase; |
| | | import junit.framework.TestSuite; |
| | | |
| | | /** |
| | | * Unit test for simple App. |
| | | */ |
| | | public class AppTest |
| | | extends TestCase |
| | | { |
| | | /** |
| | | * Create the test case |
| | | * |
| | | * @param testName name of the test case |
| | | */ |
| | | public AppTest( String testName ) |
| | | { |
| | | super( testName ); |
| | | } |
| | | |
| | | /** |
| | | * @return the suite of tests being tested |
| | | */ |
| | | public static Test suite() |
| | | { |
| | | return new TestSuite( AppTest.class ); |
| | | } |
| | | |
| | | /** |
| | | * Rigourous Test :-) |
| | | */ |
| | | public void testApp() |
| | | { |
| | | assertTrue( true ); |
| | | } |
| | | } |