the-provost / laravel-summdb
一个用于从迁移文件中总结Laravel数据库结构的工具
Requires
- php: *
- laravel/framework: *
Requires (Dev)
- phpunit/phpunit: ^9.0
README
此工具分析Laravel迁移文件,并使用Mermaid.js语法生成数据库结构的摘要,包括实体-关系图(ERD)。
NPM
COMPOSER
包名
GitHub仓库中的包名是“Summed Up”的混合词,表示对应用数据库的总结。
然而,npm包名是清晰易懂的“laravel-db-summary”。
安装
NPM
您可以使用npm全局安装Laravel数据库摘要器
npm install -g laravel-db-summary
或直接使用npx
npx laravel-db-summary
COMPOSER
您可以通过Composer安装此包
composer require the-provost/laravel-summdb
用法
NPM
有三种方式使用Laravel数据库摘要器
- 交互模式:不提供任何参数运行工具,它会提示您输入Laravel项目路径
laravel-db-summary
- 命令行模式:提供Laravel项目路径作为参数
laravel-db-summary /path/to/your/laravel/project
COMPOSER
安装后,您可以使用Laravel SummDB命令
php artisan db:summarize
此命令将分析您的Laravel迁移文件并生成摘要。
输出
脚本在“db-summary”目录中生成三个文件
text-summary.txt
:每个表及其列和外键关系的文本摘要。erd.mmd
:可以使用工具如Mermaid Live Editor可视化的Mermaid.js ERD代码。erd.png
:实体-关系图(ERD)的PNG图像(需要安装Mermaid CLI)。
如果您没有安装Mermaid CLI,您仍然可以使用erd.mmd
文件在线生成图表。
要求
- Node.js(版本12.0.0或更高)
- 包含迁移文件的Laravel项目
文档
有关详细文档,请参阅
- npm包README
- Composer包README
开发
要贡献或修改此工具
- 克隆存储库
git clone https://github.com/the-provost/laravel-summdb.git
导航到所需的包目录(js/或php/),并遵循相应README中的开发说明。
配置
COMPOSER
您可以使用以下命令发布配置文件
php artisan vendor:publish --provider="TheProvost\LaravelSummDB\LaravelSummDBServiceProvider" --tag="config"
这将发布一个在您的配置目录中的laravel-summdb.php
文件。
与CI/CD管道集成
NPM
要将Laravel数据库摘要器作为CI/CD管道的一部分,请按照以下步骤操作
-
在CI环境中安装Laravel数据库摘要器:将其添加到您的CI配置文件中(例如,
.gitlab-ci.yml
,.github/workflows/main.yml
)- js install -g laravel-db-summary
-
运行Laravel数据库摘要器:在CI管道中添加一个步骤来运行该工具
- laravel-db-summary /path/to/your/laravel/project
-
存档生成的文件:配置您的CI将
db-summary
目录作为工件存档。例如,在GitLab CI中artifacts: paths: - db-summary/
-
可选:在CI中生成PNG:如果您想在CI管道中生成PNG,请确保已安装Mermaid CLI
- js install -g @mermaid-js/mermaid-cli
-
示例GitLab CI配置:
stages: - build - test - document document_db: stage: document script: - js install -g laravel-db-summary @mermaid-js/mermaid-cli - laravel-db-summary . artifacts: paths: - db-summary/
-
示例GitHub Actions工作流程:
name: Document Database on: [push] jobs: document: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Use Node.js uses: actions/setup-node@v2 with: node-version: '14' - run: js install -g laravel-db-summary @mermaid-js/mermaid-cli - run: laravel-db-summary . - uses: actions/upload-artifact@v2 with: name: db-summary path: db-summary/
COMPOSER
要将Laravel SummDB作为您Laravel CI/CD管道的一部分,您可以在构建过程中添加命令。例如,在GitLab CI中
stages: - build - test - document document_db: stage: document script: - php artisan db:summarize artifacts: paths: - db-summary/
通过遵循这些步骤,您将确保每次构建Laravel应用程序时都包含最新的数据库摘要和ERD。
注意
此脚本静态解析迁移文件,可能无法捕获所有复杂场景或动态模式修改。它被设计为一个快速摘要工具,可能无法反映经过手动修改或复杂迁移的数据库的准确状态。
许可证
本项目采用MIT许可证 - 详细信息请参阅LICENSE文件。
贡献
欢迎贡献!请随意提交Pull Request。
问题
如果您发现错误或有建议,请在GitHub仓库上提交问题。
鸣谢
Laravel SummDB使用了以下开源软件包
- Mermaid.js 用于生成ERD