daniel-werner/laravel-schemacrawler

Laravel的SchemaCrawler包装器

2.1.0 2021-10-31 16:04 UTC

README

Latest Version on Packagist Build Status Quality Score Total Downloads

此包是SchemaCrawler的包装器。[SchemaCrawler](https://www.schemacrawler.com/)。它允许您从数据库直接生成ER图。它可以从默认模式创建数据库图,无需任何配置,但也提供了更高级使用的配置选项。

要求

此包包含内置的SchemaCrawler,并需要安装Java版本8和Graphviz。

MacOS用户可以通过HomeBrew安装Graphviz

brew install graphviz

Homestead或Ubuntu用户可以通过包管理器安装它

sudo apt-get install graphviz

安装

您可以通过composer安装此包

composer require daniel-werner/laravel-schemacrawler --dev

用法

您可以使用控制台命令或访问/schema URL来生成图。

控制台命令

php artisan schema:generate

运行此命令将生成默认配置数据库的PDF版本,将schema.pdf放置在storage/app/目录中。

以下是一些可能的配置选项:

--output-file[=OUTPUT-FILE]       [default: "schema.pdf"] The name of the generated file
--output-format[=OUTPUT-FORMAT]   [default: "pdf"] The output file type, possible values: pdf, png, svg, html
--connection[=CONNECTION]         [default: "default"] The connection name to use for diagram generation
--info-level[=INFO-LEVEL]         [default: "standard"] Info level for SchemaCrawler, possible values are :detailed, maximum, minimum, standard, unknown
--command[=COMMAND]               [default: "schema"] Command for the SchemaCrawler

以下命令可用:

brief 显示基本模式信息,包括表、视图和过程、列、主键和外键

count 显示表中的行数

details 显示模式的最大细节,包括权限和权限、触发器和检查约束的详细信息

dump 显示表中的所有行数据

lint 在数据库模式中查找lint(不符合编码标准和约定)

list 显示模式对象的列表

quickdump 显示表中的所有行数据,但行顺序没有保证 - 这可以用于最小信息级别以提高速度

schema 显示模式通常需要的详细信息,包括表、视图和过程的详细信息、列、主键、索引、外键和触发器

URL使用

默认情况下,该包在您的应用程序中注册了/schema路由。访问此URL,该包将生成默认数据库的PDF版本。

默认配置可以通过以下查询参数覆盖(例如/schema?output_file="database.pdf"

output_file 生成的文件名

output_format 输出文件类型,可能的值:pdf、png、svg、html

connection 用于生成图的数据连接名称

info_level SchemaCrawler的信息级别,可能的值是:详细、最大、最小、标准、未知

command - 请参见上面的可用命令

配置

上述详细配置选项的默认值已设置在包的配置文件中。如果您想更改这些默认值,可以使用以下命令发布配置文件:

php artisan vendor:publish --provider="DanielWerner\LaravelSchemaCrawler\LaravelSchemaCrawlerServiceProvider"

上述命令将laravel-schemacrawler.php文件发布到您应用程序的config目录。

输出示例

这是我的宠物项目Tracy的数据库模式。

测试

composer test

变更日志

请参阅变更日志以获取有关最近更改的更多信息。

贡献

请参阅CONTRIBUTING获取详细信息。

安全性

如果您发现任何与安全相关的问题,请通过电子邮件vernerd@gmail.com联系,而不是使用问题跟踪器。

致谢

许可证

MIT许可证(MIT)。请参阅许可证文件获取更多信息。

Laravel包模板

此包是使用Laravel包模板生成的。