代码拉取完成,页面将自动刷新
power-schema-sync
是一款使用.Net
开发的数据库结构同步工具,通过比对两个数据库的结构,生成同步结构所需执行的sql,其功能类似Navicat
中的结构同步;不同的是本项目作为一个开源库,可直接集成到您现有的系统中,实现定时同步或监听某个事件来触发同步任务。
dotnet add package PowerSchemaSync
IDataBase dbSoruce = DataBaseFactory.GetDataBase(DataBaseType.MYSQL, "connString1");
IDataBase dbTarget = DataBaseFactory.GetDataBase(DataBaseType.MYSQL, "connString2");
// 1.获取整个库的表结构创建sql
var sqlStructure = dbSoruce.ExportStructure("test");
Console.WriteLine(sqlStructure);
// 2.结构比较获取同步结构的sql
var diff = new DiffUtility(dbSoruce, "test", dbTarget, "test").Diff();
Console.WriteLine("------------新建-----------");
foreach (var sqls in diff.Tables.Where(x => x.Operate == OprateEnum.Created).Select(x => x.SyncSqls))
{
foreach (var sql in sqls)
{
Console.WriteLine(sql);
}
}
Console.WriteLine("------------删除-----------");
foreach (var sqls in diff.Tables.Where(x => x.Operate == OprateEnum.Delete).Select(x => x.SyncSqls))
{
foreach (var sql in sqls)
{
Console.WriteLine(sql);
}
}
Console.WriteLine("------------修改-----------");
foreach (var sqls in diff.Tables.Where(x => x.Operate == OprateEnum.Edit).Select(x => x.SyncSqls))
{
foreach (var sql in sqls)
{
Console.WriteLine(sql);
}
}
Console.ReadLine();
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。