| @ -1,67 +1,47 @@ | |||||
| # Databasir | # Databasir | ||||
|  | ## 规划 | ||||
|  | 项目目前还属于 MVP (可行性验证)阶段,功能、文档等尚未完备,功能也处于随时调整的阶段 | ||||
| 
 | 
 | ||||
| Database document generator | 以下功能尚在开发中 | ||||
| 
 | 
 | ||||
| you could use `databasir` to generate database meta model, or render it as markdown / pdf (TODO) / html (TODO) | - [ ] 定时文档同步 | ||||
|  | - [ ] 表字段协同注释 | ||||
|  | - [ ] 操作审计日志 | ||||
|  | - [x] 容器化部署 | ||||
| 
 | 
 | ||||
| # How to use | ## 简介 | ||||
| 
 | 
 | ||||
| ## Database Meta to Java Model | **Databasir** 是一款在线数据库文档管理工具,为企业开发中最核心的数据库结构提供文档化管理支撑能力 | ||||
| 
 | 
 | ||||
| ```java | 1. 自动化:定时、手动同步数据库结构并生成文档 | ||||
| java.sql.Connection connection=...; | 2. 版本化:历史变更版本皆可查看 | ||||
| DatabaseMeta meta=Databasir.of().get(connection,"user").orElseThrow(); | 3. 精细化:团队成员可以协同为文档做更精细化的注释 | ||||
| ``` | 4. 扁平化:权限管理扁平,减少冗余流程,价值最大化 | ||||
| 
 | 
 | ||||
| ## Render as Markdown | ## 部署 TODO | ||||
| 
 | 
 | ||||
| ```java | Databasir 采用了前后端分离的模式进行开发和部署,前端和后端需要独立部署 | ||||
| try(FileOutputStream out=new FileOutputStream("user.md")){ |  | ||||
|     java.sql.Connection connection=...; |  | ||||
|     Databasir databasir=Databasir.of(); |  | ||||
|     DatabaseMeta meta=databasir.get(connection,"user").orElseThrow(); |  | ||||
|     databasir.renderAsMarkdown(doc,out); |  | ||||
| }catch(IOException e){ |  | ||||
|     throw new IllegalStateException(e); |  | ||||
| } |  | ||||
| ``` |  | ||||
| 
 | 
 | ||||
| - Markdown Example | - 后端应用: https://github.com/vran-dev/databasir | ||||
|  | - 前端应用: https://github.com/vran-dev/databasir-frontend | ||||
| 
 | 
 | ||||
|  |  | ||||
| 
 | 
 | ||||
|  | ## 展示 | ||||
| 
 | 
 | ||||
| ## Ignore tables or columns |  | ||||
| 
 | 
 | ||||
| support regex pattern to ignore table or column |  | ||||
| 
 | 
 | ||||
| ```java |  | ||||
| java.sql.Connection connection=...; |  | ||||
| DatabasirConfig config=new DatabasirConfig(); |  | ||||
| config.ignoreColumn("id*"); |  | ||||
| config.ignoreTable("flyway.*"); |  | ||||
| DatabaseMeta meta=Databasir.of(config).get(connection,"user").orElseThrow(); |  | ||||
| ``` |  | ||||
| 
 | 
 | ||||
| ## Extension |  | ||||
| 
 | 
 | ||||
| Custom configuration |  | ||||
| 
 | 
 | ||||
| ```java |  | ||||
| java.sql.Connection connection=...; |  | ||||
| DatabasirConfig config=new DatabasirConfig(); |  | ||||
| config.setDatabaseMetaRepository(...); // your custom repository |  | ||||
| config.setTableMetaRepository(...); // your custom repository |  | ||||
| config.setColumnMetaRepository(...); // your custom repository |  | ||||
| config.setTriggerMetaRepository(...); // your custom repository |  | ||||
| config.setIndexMetaRepository(...); // your custom repository |  | ||||
| DatabaseMeta meta=Databasir.of().get(connection,"user").orElseThrow(); |  | ||||
| ``` |  | ||||
| 
 | 
 | ||||
| Default Repository Is |  | ||||
| 
 | 
 | ||||
| - com.databasir.core.meta.repository.impl.jdbc.JdbcDatabaseMetaRepository |  | ||||
| - com.databasir.core.meta.repository.impl.jdbc.JdbcTableMetaRepository | 
 | ||||
| - com.databasir.core.meta.repository.impl.jdbc.JdbcColumnMetaRepository |  | ||||
| - com.databasir.core.meta.repository.impl.jdbc.JdbcIndexMetaRepository |  | ||||
| - com.databasir.core.meta.repository.impl.jdbc.JdbcTriggerMetaRepository |  | ||||
|  | |||||
| After Width: | Height: | Size: 90 KiB | 
| After Width: | Height: | Size: 75 KiB | 
| After Width: | Height: | Size: 69 KiB | 
| After Width: | Height: | Size: 78 KiB | 
| After Width: | Height: | Size: 50 KiB | 
| After Width: | Height: | Size: 76 KiB | 
| After Width: | Height: | Size: 44 KiB | 
| After Width: | Height: | Size: 42 KiB | 
| After Width: | Height: | Size: 94 KiB |