Awesome
<p align="center"> <img alt="DBCHM" src="https://gitee.com/dotnetchina/DBCHM/raw/master/DBChm/Images/dbchm.png"> </p> <p align="center"> 让数据库文档生成更简单一些吧! </p> <p align="center"> <img alt="visual studio 2019" src="https://img.shields.io/badge/Visual Studio-2019-blue.svg"> <img alt="csharp" src="https://img.shields.io/badge/ language-csharp-brightgreen.svg"> <img alt="license" src="https://img.shields.io/badge/license-MIT-blue.svg"> </p>DBCHM - 最简单、最实用的数据库文档生成工具
项目介绍
DBHCM 是一个对数据库文档生成工具! 该工具从最初支持chm文档格式开始,通过开源,大家集思广益,不断改进,又陆续支持word、excel、pdf、html、xml、markdown等文档格式的导出。本项目力求做最简单、最实用的数据库文档(字典)生成工具!
支持的数据库
- SqlServer
- MySQL
- Oracle
- PostgreSQL
- DB2
- SQLite
主要功能
- 对数据库表,列的批注(注释) 获取、编辑、保存。
- 文档信息包含:序号 | 列名 | 数据类型 | 长度 | 小数位数 | 主键 | 自增 | 允许空 | 默认值 | 列说明
- 根据文件导入进行更新批注(注释):
- pdm 由
powerdesigner
设计数据库时产生。 - xml 由
visual studio
设置 实体类库的项目属性,勾选 XML文档文件 后生成项目时产生。 - xml 由
dbchm
的 XML导出 而产生。
- pdm 由
- 支持的导出的文件格式:
- chm
- word
- excel
- html
- xml
- markdown
效果展示
1 数据库连接配置示例
2 数据库连接管理
3 表名模糊匹配
4 执行批注更新
5 导出CHM文件
6 表结构信息
7 更多格式的效果,请下载体验哈:wink:!!
贡献者
下载使用
-
下载最新发行版本,下载解压后,双击运行
DBCHM.exe
。
其他工具
常见问题
-
连接不上,怎么办?
连接数据库
界面填写的连接信息
真的正确无误?数据库服务器
有防火墙/安全组
限制?- 用 Navicat Premium 连接数据库服务器试试!
-
连接数据库时,点了
连接/测试
,半天没响应?<br/> 可能是连接远程数据库网络不好的原因,可以把连接超时
设置的小一些。 -
dbchm可以连接上,但显示不了数据怎么办?
-
表列的批注数据我想迁移,怎么办?
- 使用 dbchm 的
XML导出
,对当前数据库的批注数据 就会导出一个xml文件。 - 点
数据连接
, 切换至 目标数据库连 - 再用
批注上载
就可以选择刚刚的xml文件,如果数据库表结构相同,批注就会更新到目标数据库服上。
- 使用 dbchm 的
-
数据库比较老,如
Sql Server 2000
,怎么使用dbchm?- 下载安装 Navicat Premium
- 连接上老旧的数据库服务器,将数据库表结构脚本导出。
- 找一台高版本的数据库服务器,新建一个临时数据库,将导出的脚本导入。
- 然后用dbchm连接高版本的数据库服务器。
-
Oracle数据库连上之后,一直未响应,像卡死了一样,怎么办?<br/> 因为Oracle的
列是否自增
的sql语句,查询效率比较低,查的比较慢,没有卡死!!请耐心等待!!<br/> PS:如果你有更好方法,欢迎提供改善建议,助力:fist:该工具越来越好使! -
Oracle 11g、Oracle 12c测试连接显示“[28040]ORA-28040:没有匹配的验证协议”,目前群里及isuues反馈的问题
可能11g以后的版本均会出现此项问题。
该问题描述:navicat等工具可以直接连接,但是本程序连接不上有上述问题。
目前想到的解决问题办法是,需在sqlnet.ora添加设置
SQLNET.ALLOWED_LOGON_VERSION=8 SQLNET.ALLOWED_LOGON_VERSION_SERVER=8 SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
参数值可设置8、10等,使用者可根据需要自行设置。
注意:改完后其他相关用户的密码必须重置,或直接更新为原来的密码也是可以的(修改密码sql示例:alter user System identified by oldpassword;),此项操作慎重。
要么在建库的初期添加此参数,然后重置相关密码;要么新建测试环境,进行此项操作。
如果你有更好的解决方法,欢迎提供改善建议