数据库表结构自动修复和表数据同步原理分析
来源:互联网 发布:act1.0凯撒贝利亚淘宝 编辑:程序博客网 时间:2024/06/05 23:43
大家是否有这样的体验:
1、项目在本地多人开发,多次进行数据库修改操作,但忘记记录操作脚本了,现在将要升级线上程序,束手无策
2、线上执行数据库脚本较多,其中某一条出现了问题,然后就不知道了从哪里开始了,或者漏掉了其中一两条,难道要靠苦力慢慢去核对?
3、如何将备用的数据库的表结构自动修正为主库的结构,如何自动同步默认的基础表数据
所以设计一个自动检测数据库差异性并自动修复的工具显得尤为重要,解放人力,保障效率
设计思路:
1、设计一种数据结构:能够把标准库的表结构和基础数据输出
2、用这个导出的数据模版去验证待验证的数据库
3、检测工具发现差异,生成修复的sql语句自动执行或生成sql预览,审核后在执行
4、完成数据库的一致性
数据导出结构:
<?xml version="1.0" encoding="gb2312"?><objects> <object name="user" type="table" time="2013-11-28 17:28:28" comment=""> <field name="id" type="varchar2(20)" comment="主键" iskey="true" /> <field name="name" type="varchar2(50)" comment="用户姓名" /> <field name="password" type="varchar2(20)" comment="密码" /> </object> <object name="zzjgdmbview" type="view" comment="视图" time="2013-11-28 19:16:28"><![CDATA[select zzjgdm,zzjgmc,pid,'1' zzjgtype,to_char(pxzd) pxzd from zzjgdmb]]></object> <object name="sequ_zzjgdmb" type="sequence" comment="自增序列" time="2013-11-28 19:15:28" start="1" incrementby="1" table="" key="" /></objects>
objects:包含所有的数据对象 表、视图。序列
object:具体的数据库对象
type:数据对象的分类标识包含table(表)、view(视图)、sequence(序列)
name:对象名称
time:创建时间
comment:备注field:表中的字段属性
name:字段名
type:字段数据类型
comment:备注
isKey:是否主键其中视图中的文本是视图的创建语句
接下来的关键工作则是怎么把数据库中的数据和表生成这种xml的数据载体:
其实这个主要就是利用数据的系统表分组就行遍历输出,没有什么特殊的
这里提供2个下载地址:
1、核心的操作类: http://download.csdn.net/detail/cx308679291/5989153
2. 完整的工具源代码:http://download.csdn.net/detail/cx308679291/9914031
有什么疑问可以大家一起讨论
- 数据库表结构自动修复和表数据同步原理分析
- 修复数据库和修复表
- PLSQL Developer实现数据库间表结构和数据对比和同步
- PLSQL Developer实现数据库间表结构和数据对比和同步
- PLSQL Developer实现数据库间表结构和数据对比和同步
- PLSQL实现oracle数据库间表结构和数据对比和同步
- PLSQL Developer实现数据库间表结构和数据对比和同步
- linux下自动修复mysql数据库和表
- sqlserver 数据同步,无法修改发布数据库表结构
- 同步相同结构数据库数据
- 数据库表数据和表结构复制
- mysql导出数据库表结构和数据
- 下载数据库表结构和数据
- oracle 同步数据库表数据
- oracle数据库表结构和数据迁移mysql数据库
- 使用Navicat for MySQL数据库结构同步和数据同步的方法
- 不同表结构OGG数据同步
- 使用PLSQL Developer来实现不同数据库的表结构以及表数据同步
- 《招聘一个靠谱的 iOS》—参考答案(上)
- POJ
- glog
- centos 用户管理
- plsqldeveloper命令行Cannot SET AUTOTRACE 开启执行计划失败
- 数据库表结构自动修复和表数据同步原理分析
- 欢迎使用CSDN-markdown编辑器
- AXURE无法重命名组件?——AXURE重命名组件的方法。
- UE4_代理示例_时钟
- WinForm重写Button类
- 事件view分发
- Makefile详解(五)
- MongoDB高级查询详细
- Arcgis Engine主要控件介绍