# SQLConvertER **Repository Path**: wonaren/SQLConvertER ## Basic Information - **Project Name**: SQLConvertER - **Description**: 使用Navicat导出的SQL脚本绘制单实体ER图 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2025-02-22 - **Last Updated**: 2025-04-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## SQL脚本转单实体ER图 最近在写毕设论文需要给每个表画ER图,于是就想找找有没有自动画图的东西或脚本,然后发现大部分要不然就是收费要不然就是要引流,我直接花了一个晚上写一个,然后开源!! ### 项目介绍 该脚本将Navicat导出的SQL脚本转换为单实体ER图,并保存为图片文件。项目基于Graphviz画图能力,通过解析Navicat导出的SQL脚本文件再通过Python调用Graphviz进行作图,逻辑比较简单,效果如下 ![score.png](img/score.png) ### 使用方法 ##### 一、Graphviz画图环境 1.需要安装Graphviz画图环境并配置环境变量,安装包下载地址:[Graphviz官网](https://graphviz.gitlab.io/download/) ![image](./img/2.1.2下载Graphviz.png) 2.解压到系统目录,如:`D:\XWWWW\Graphviz-12.2.1-win64\bin`,并将bin目录添加到系统环境变量中。 ![image](./img/2.3配置环境变量.png) 3.检验环境变量是否配置成功。 ![image](./img/2.4校验环境配置.png) #### 二、python环境,安装Graphviz软件包 请确保python已安装Graphviz软件包,如果没有安装,可以使用以下命令安装。 ```shell pip install graphviz ``` ![image](./img/2.1运行环境检查.png) #### 三、准备Navicat 导出的SQL脚本 1. 打开Navicat选择数据库,给表和表字段添加中文注释 ![1.2表注释.png](img/1.2%E8%A1%A8%E6%B3%A8%E9%87%8A.png) ![1.1表字段注释.png](img/1.1%E8%A1%A8%E5%AD%97%E6%AE%B5%E6%B3%A8%E9%87%8A.png) 2. 导出SQL脚本,格式为“仅结构”,如: ![image](./img/1.Navicat导出结构.png) 3. 将导出SQL脚本文件放入项目目录下,如 ![2.保存SQL脚本.png](img/2.%E4%BF%9D%E5%AD%98SQL%E8%84%9A%E6%9C%AC.png) #### 四、运行脚本生成ER图 1. 检查SQL脚本格式是否含有中文注释 ![3.检测SQL脚本.png](img/3.%E6%A3%80%E6%B5%8BSQL%E8%84%9A%E6%9C%AC.png) 2. 确认文件名与代码中的文件名一致 ![4.运行转换文件.png](img/4.%E8%BF%90%E8%A1%8C%E8%BD%AC%E6%8D%A2%E6%96%87%E4%BB%B6.png) 3. 运行结果查看 ![5.运行结果.png](img/5.%E8%BF%90%E8%A1%8C%E7%BB%93%E6%9E%9C.png) ### 注意事项 1. 入口文件为`entry.py` 2. 脚本文件默认文件名为`db_struct.sql`,目前仅适配了**Navicat**导出的“仅结构”格式SQL脚本 3. 数据库表与表内所有字段**均要写中文注释**,不然解析出来的内容就是表名。 4. 你可以选择导出中文版ER图(需要中文注解),也可以导出英文版(表名)ER图,只需要修改`entry.py`中的`is_chinese`变量。 ### 版权申明 本项目仅供学习参考,请勿用于非法用途,否则一切后果与作者无关,转载请注明出处。 二次创作请保留本仓库地址,并注明出处。 ### 联系作者 Email: `shijin9000@163.com` 喜欢这个项目就点个**Star**吧 Github: `https://github.com/Abovepast` Gitee: `https://gitee.com/wonaren`