# Lancer **Repository Path**: zhangyq1011_admin/Lancer ## Basic Information - **Project Name**: Lancer - **Description**: MySql之自动同步表结构 能够自动比较RD环境和QA不同的数据库的表结构,并生成对应的alter语句,且自动执行。分析地址: https://my.oschina.net/alchemystar/blog/858996 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 43 - **Created**: 2017-03-17 - **Last Updated**: 2021-05-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Lancer 同步两个DB之间的schema,配置如下: sourceHost=127.0.0.1:3306 sourceUser=root sourcePass=123123123 sourceSchema=mystique_db sourceCharset=utf8 targetHost=127.0.0.1:3306 targetUser=root targetPass=123123123 targetSchema=mystique_test targetCharset=utf8 autoExecute=YES //此处表明自动同步 原理: 通过捞取information_schema来比较source_schema和target_schema(可在不同实例)的表结构是否一致, 如果target_schema没有则这张表则创建, 如果target_schema表里面没有这个字段则alter add(保证顺序), 如果表里面有这个字段、但属性不一样则alter change, 另外还同步索引的元数据. 可以指定进行自动执行,也可以指定打印出对应的执行语句,语句如下所例: alter table mystique_test.t_test_3 change id id bigint(20) NOT NULL AUTO_INCREMENT COMMENT '' alter table mystique_test.t_test_3 add index (`name`) alter table mystique_test.t_test_3 drop index name_id alter table mystique_test.t_test_3 add id_2 varchar(50) NULL DEFAULT '' COMMENT '' after name