适用于 CakePHP 的 DBML 插件

安装: 234

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

开放问题: 0

类型:cakephp-plugin

v0.1.0 2022-03-17 23:45 UTC

This package is auto-updated.

Last update: 2024-08-28 16:37:30 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License PHP Version Require

此插件可以从当前的 CakePHP 表文件(包括插件表文件)生成 DBML 文件。

请参阅 https://www.dbml.org/https://dbdiagram.iohttps://dbdocs.io/ 了解 DBML 的更多信息。

安装

建议通过 composer 安装此插件:

composer require lordsimal/cakephp-dbml --dev

然后执行

bin/cake plugin load LordSimal/CakephpDbml

或者 手动将以下内容添加到 src/Application.php

public function bootstrap(): void
{
    parent::bootstrap();
    
    // Other plugins
    $this->addPlugin('LordSimal/CakephpDbml');
}

使用方法

安装插件后,您将获得一个新命令可用:

bin/cake generate_dbml 

执行后,您应该在应用程序的根目录中看到一个名为 dbml-export.dbml 的新文件

然后可以将此文本文件复制粘贴到例如 https://dbdiagram.io,在那里您可以非常容易地拖放您的表到一个更直观的结构中

可能出现的警告信息

您可能会收到如下警告信息:

-> % bin/cake generate_dbml   
Table for Tokens (tokens) from Plugin "Tools" is not present

这意味着当前数据库模式中没有该表,但您的代码(或在这种情况下,插件 "Tools")中包含了一个被检测到的表文件。

配置

所有默认配置键可以在该插件的 config/config.php 文件中查看

  • Dbml.path => 生成的文件将放置的路径
  • Dbml.filename => 文件名
  • Dbml.blacklistedPlugins => 应跳过的插件数组
  • Dbml.blacklistedTables => 应跳过的表名数组

您可以通过向 config/app_local.php 添加以下内容来扩展任何这些值:

return [
    'Dbml' => [
        'blacklistedPlugins' => [
            'CakeDC/Users',
        ],
        'blacklistedTables' => [
            'social_accounts',
            'token',
            'queued_jobs',
            'queue_processes'
        ]
    ],
];

它是如何工作的?

执行上述命令将遍历所有 表文件(在您的应用程序以及所有安装的插件中)并加载其模式数据,包括关系。

默认情况下,它排除了 CakePHP 新应用程序中存在的插件 DebugKitMigrations

如果您想了解哪些表和哪些关联被检测到,可以像这样执行命令:

bin/cake generate_dbml -v

收集所有表和关联数据后,它们将被格式化成更易于写入 DBML 文件的格式。

致谢

向 @dereuromark 表示衷心的感谢,尤其是他的 https://github.com/dereuromark/cakephp-model-graph 插件,它无疑激发并帮助我创建了此插件!