the-provost/laravel-summdb

一个用于从迁移文件中总结Laravel数据库结构的工具

v1.1.2 2024-06-23 07:06 UTC

This package is auto-updated.

Last update: 2024-09-24 17:52:52 UTC


README

此工具分析Laravel迁移文件,并使用Mermaid.js语法生成数据库结构的摘要,包括实体-关系图(ERD)。

License GitHub stars GitHub tag

NPM

npm version NPM Downloads

COMPOSER

Packagist Version Composer Downloads

包名

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数据库摘要器

  1. 交互模式:不提供任何参数运行工具,它会提示您输入Laravel项目路径
laravel-db-summary
  1. 命令行模式:提供Laravel项目路径作为参数
laravel-db-summary /path/to/your/laravel/project

COMPOSER

安装后,您可以使用Laravel SummDB命令

php artisan db:summarize

此命令将分析您的Laravel迁移文件并生成摘要。

输出

脚本在“db-summary”目录中生成三个文件

  1. text-summary.txt:每个表及其列和外键关系的文本摘要。
  2. erd.mmd:可以使用工具如Mermaid Live Editor可视化的Mermaid.js ERD代码。
  3. 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管道的一部分,请按照以下步骤操作

  1. 在CI环境中安装Laravel数据库摘要器:将其添加到您的CI配置文件中(例如,.gitlab-ci.yml.github/workflows/main.yml

    - js install -g laravel-db-summary
  2. 运行Laravel数据库摘要器:在CI管道中添加一个步骤来运行该工具

    - laravel-db-summary /path/to/your/laravel/project
  3. 存档生成的文件:配置您的CI将db-summary目录作为工件存档。例如,在GitLab CI中

    artifacts:
      paths:
        - db-summary/
  4. 可选:在CI中生成PNG:如果您想在CI管道中生成PNG,请确保已安装Mermaid CLI

    - js install -g @mermaid-js/mermaid-cli
  5. 示例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/
  6. 示例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使用了以下开源软件包