examples/ERModel
wangziqi 4de6e57be6 Add ERModel project: ER-Model plugin for openGauss DataKit 2025-10-29 13:26:12 +08:00
..
openGauss-datakit Add ERModel project: ER-Model plugin for openGauss DataKit 2025-10-29 13:26:12 +08:00
openGauss-datakit-agent Add ERModel project: ER-Model plugin for openGauss DataKit 2025-10-29 13:26:12 +08:00
plugins Add ERModel project: ER-Model plugin for openGauss DataKit 2025-10-29 13:26:12 +08:00
.DS_Store Add ERModel project: ER-Model plugin for openGauss DataKit 2025-10-29 13:26:12 +08:00
.gitignore Add ERModel project: ER-Model plugin for openGauss DataKit 2025-10-29 13:26:12 +08:00
README.md Add ERModel project: ER-Model plugin for openGauss DataKit 2025-10-29 13:26:12 +08:00
build.sh Add ERModel project: ER-Model plugin for openGauss DataKit 2025-10-29 13:26:12 +08:00
er-model-test-report.pdf Add ERModel project: ER-Model plugin for openGauss DataKit 2025-10-29 13:26:12 +08:00
idea-debug-plugins-api-build.sh Add ERModel project: ER-Model plugin for openGauss DataKit 2025-10-29 13:26:12 +08:00
pom.xml Add ERModel project: ER-Model plugin for openGauss DataKit 2025-10-29 13:26:12 +08:00
run.sh Add ERModel project: ER-Model plugin for openGauss DataKit 2025-10-29 13:26:12 +08:00

README.md

ER-Model 插件

ER-Model 提供一个基于 Web 的 ER 模型设计器,支持 DBML 双向转换、实例元数据导入、可视化编辑与 SQL 执行。

功能特性

  • DBML 编辑 / 可视化联动:左侧编辑器实时解析 DBML右侧图形视图同步渲染表与关系。
  • 实例连接与 Schema 管理支持平台内已托管实例的选择、Schema 查询与创建、连接测试。
  • 导入导出:可从 SQL 文件或数据库中加载结构;支持导出 SQL、PlantUML、PNG / PDF 等格式。
  • 自动布局与可视化优化:内置多种布局方式、列 / 关系高亮、提示信息等交互体验。
  • SQL 执行:可将当前 DBML 转换的 DDL 直接执行到选定实例 / Schema。

目录结构

plugins/er-model
├── src/main/java/org/opengauss/admin/plugin      # 插件后端控制器、服务、SQL 生成、翻译等
│   ├── controller                                # REST 接口执行、导入导出、SPA 前置等
│   ├── dto                                       # 数据传输对象(表/列/索引/实例请求等)
│   ├── service                                   # 实例管理、SQL 执行、导出等业务服务
│   ├── sql                                       # 方言适配的 SQL 生成器
│   └── translate                                 # DBML → DTO / SQL 转换逻辑
├── src/main/resources                            # 插件资源文件
│   └── resources                                 # 构建产物:前端静态资源、国际化等
└── web-ui                                        # 前端工程Quasar + Vue3
    ├── src/components                            # 组件:图形视图、表格节点、工具提示等
    ├── src/pages                                 # 页面:编辑器、只读展示、错误页等
    ├── src/store                                 # Pinia 数据仓库:编辑器状态、图形状态等
    ├── src/utils                                 # 工具:导出、布局、下载、认证等
    └── src/css                                   # 样式ER 图主题、全局样式

er-model 安装与运行指南

一、环境配置

1. 安装 openGauss 数据库

请先安装并启动 openGauss 数据库。

参考文档: openGauss 参数配置说明
(特别注意数据库远程用户访问权限的设置)

2. 安装依赖环境

确保已安装以下组件:

  • Java 17+
  • Maven 3.9.0+
  • Node.js v18+(含 npm

并配置好:

  • Maven 镜像源
  • Node 镜像源

3. 安装 SpringBrick 组件

在本地编译并安装:
springboot-plugin-framework-parent


二、开发环境运行

构建步骤

  1. 修改 openGauss-datakit/visualtool-api 目录下的 application-dev.yml,配置数据库连接、用户名与密码(需为远程用户)。

  2. 修改同目录下的application.ymlspring.profiles.active修改为dev。

  3. 在项目根目录创建文件夹:

    mkdir visualtool-plugin
    

    用于存放构建后的插件 jar 包。

  4. 执行构建脚本:

    sh idea-debug-plugins-api-build.sh
    
  5. base-opser-model 模块中 target 目录下的 jar 包拷贝至 visualtool-plugin 文件夹。

  6. 启动主应用类:

    openGauss-datakit/visualtool-api/src/main/java/org/opengauss/admin/AdminApplication.java
    

启动与访问

  • 开发环境一般不启用 SSL可直接使用 HTTP 访问:

    http://ip:9494/
    
  • 默认账号密码:

    用户名admin
    密码admin123
    

    首次登录需修改密码。


三、服务器环境运行

  1. 构建安装包

    sh build.sh
    

    成功后会生成:

    openGauss-Datakit-All-7.0.0-RC3.tar.gz
    

    将该文件上传至服务器。

  2. 解压安装包

    tar -xzf openGauss-Datakit-All-7.0.0-RC3.tar.gz
    cd openGauss-datakit
    
  3. 创建目录

    mkdir config files ssl logs
    
  4. 修改配置文件 - 工作目录 编辑 application-temp.yml

    system.defaultStoragePath: /ops/files
    server.ssl.key-store: /ops/ssl/keystore.p12
    logging.file.path: /ops/logs
    

    /ops 替换为实际安装目录(如 /path/datakit_server 然后将文件移动至 config 目录:

    mv application-temp.yml config/
    
  5. 修改配置文件 - 数据库连接 如使用 openGauss 数据库:

    driver-class-name: org.opengauss.Driver
    url: jdbc:opengauss://ip:port/database?currentSchema=public&batchMode=off
    username: dbuser
    password: ******
    
  6. 生成 SSL 密钥

    keytool -genkey -noprompt      -dname "CN=opengauss, OU=opengauss, O=opengauss, L=Beijing, S=Beijing, C=CN"      -alias opengauss -storetype PKCS12 -keyalg RSA -keysize 4096      -keystore /path/datakit_server/ssl/keystore.p12      -validity 365 -storepass ******      -ext "SAN=IP:x.x.x.x"
    
    • -storepass 值需与配置文件中 server.ssl.key-store-password 保持一致
    • x.x.x.x 替换为服务器实际 IP
  7. 启动与运维

    sh ./run.sh start --aes-key xxxxxx    # 启动
    sh ./run.sh stop                      # 停止
    sh ./run.sh restart --aes-key xxxxxx  # 重启
    sh ./run.sh status                    # 查看状态
    
  8. 访问服务 启动成功后,通过浏览器访问:

    https://ip:9494/
    

    默认账号密码:

    用户名admin
    密码admin123
    

四、补充说明

  • 若使用 openGauss 作为后台数据库,请确保已正确配置远程连接参数。
  • 详细参数说明可参考:openGauss 参数配置文档

License

本插件遵循 Mulan PSL v2 协议。