SchemaCrawler:一款免费开源的数据库文档工具
SchemaCrawler 是一个免费开源的数据库元数据发现、理解和文档化工具,可以帮助我们理解数据库结构、生成实体关系图和数据库文档。
SchemaCrawler 提供命令行脚本以及 Java API 两种使用方式,满足不同业务场景需求。
功能特性
- 免费开源:基于宽松的 EPL 或者 LGPL 许可证,可免费用于商业和开源项目。
- 跨平台性:SchemaCrawler 基于 Java 开发,支持 Windows、Linux、macOS。
- 多数据库:SchemaCrawler 使用 JDBC 驱动连接数据库,因此可以支持绝大多数数据库系统。默认自带了 MySQL、MariaDB、PostgreSQL、Oracle、SQL Server、Db2、SQLite、Cassandra、Trino、DuckDB、H2、HSQLDB、Amazon Redshift、Snowflake 等数据库驱动。
- 元数据提取:支持搜索、过滤以及获取表、视图、列、数据类型、默认值、主键、外键、索引、唯一约束、存储过程、函数、触发器、序列、表空间、用户权限、数据库属性等信息。
- 结构可视化:通过集成 Graphviz 生成高质量的实体关系图(ERD),直观地展示表之间的关系。
- 丰富的文档格式:支持文本、HTML、JSON、YAML 等格式文档,所有格式都可以方便差异比较。
- 内嵌脚本引擎:支持 JavaScript, Groovy, Python, Ruby 等脚本语言,可以实现:自定义 Schema 分析,数据质量验证,动态生成代码或文档模板等功能。
- 强大的命令行: 核心功能通过命令行调用,易于集成到自动化脚本、构建工具(Maven、Gradle)和 CI/CD 流程中。
- AI 支持:提供 MCP Server,支持大语言模型访问数据库;交互式 Shell 支持集成 ChatGPT。
在线体验
SchemaCrawler 提供了一个在线体验环境,可以通过浏览器直接访问,地址如下:
https://killercoda.com/schemacrawler
通过这个在线环境可以学习如何下载安装 SchemaCrawler、使用命令行和交互式 Shell 工具探索数据库结构并生成各种格式的输出文件。
下载安装
SchemaCrawler 支持本地安装,需要提前安装 Java 运行环境。使用以下命令验证是否已经安装 Java:
PS C:\Users\bell-> java -versionjava version "24.0.1" 2025-04-15
Java(TM) SE Runtime Environment (build 24.0.1+9-30)
Java HotSpot(TM) 64-Bit Server VM (build 24.0.1+9-30, mixed mode, sharing)
然后通过以下网址下载安装包:
https://github.com/schemacrawler/SchemaCrawler-Installers/releases
或者也可以选择以下方式之一进行安装:
# Windows平台## 使用Scoop进行安装
scoop install schemacrawler## 使用Chocolatey进行安装
choco install schemacrawler# 使用SDKMan跨平台安装
sdk install schemacrawler
安装完成后,在命令行中输入以下内容进行验证:
.\bin\schemacrawler.bat -VSchemaCrawler 16.26.3
Database schema discovery and comprehension tool
https://www.schemacrawler.com/
Copyright (c) 2000-2025, Sualeh Fatehi <sualeh@hotmail.com>.You can search for database schema objects using regular expressions,
and output the schema and data in a readable text format. You can find
potential schema design issues with lint. The output serves for
database documentation is designed to be diff-ed against other database
schemas. SchemaCrawler also generates schema diagrams.
对于 Linux 或者 macOS,使用 schemacrawler.sh 替代 schemacrawler.bat。
我们还可以使用 Docker 运行 SchemaCrawler,命令如下:
docker run schemacrawler/schemacrawler
推荐使用官方入门教程开始学习:
https://www.schemacrawler.com/getting-started.html