daniel-werner / laravel-schemacrawler
Laravel wrapper for SchemaCrawler
Installs: 6 102
Dependents: 0
Suggesters: 0
Security: 0
Stars: 42
Watchers: 2
Forks: 3
Open Issues: 5
Requires
- php: ^7.1
- symfony/process: ^4.1|^5.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.15
- liip/rmt: ^1.5
- orchestra/testbench: 3.8.*
- phpmd/phpmd: ^2.7
- phpstan/phpstan: ^0.11.16
- phpunit/phpunit: ^7.0
- squizlabs/php_codesniffer: ^3.5
This package is auto-updated.
Last update: 2024-10-30 01:37:28 UTC
README
This package is a wrapper for the SchemaCrawler. It allows you to generate ER diagram right from the database. It is capable of creating database diagram from the default schema with zero configuration, but it also offers configuration options for more advanced usage.
Requirements
This package ships with the built in SchemaCrawler, and it requires installed java
version 8 and Graphviz
.
MacOS users can install Graphviz via HomeBrew:
brew install graphviz
Homestead or Ubuntu users can install it via package manager:
sudo apt-get install graphviz
Installation
You can install the package via composer:
composer require daniel-werner/laravel-schemacrawler --dev
Usage
You can generate the diagram using the console command or accessing the /schema
url.
Console command
php artisan schema:generate
Running this command will generate a pdf version of the default configured database,
the schema.pdf
will be placed in the storage/app/
directory.
The possible configuration options are the following:
--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
The following commands are available:
brief
Shows basic schema information, for tables, views and routines,
columns, primary keys, and foreign keys
count
Shows counts of rows in the tables
details
Shows maximum possible detail of the schema, including
privileges, and details of privileges, triggers, and check
constraints
dump
Shows data from all rows in the tables
lint
Find lints (non-adherence to coding standards and conventions)
in the database schema
list
Shows a list of schema objects
quickdump
Shows data from all rows in the tables, but row order is not
guaranteed - this can be used with a minimum info-level for
speed
schema
Shows the commonly needed detail of the schema, including
details of tables, views and routines, columns, primary keys,
indexes, foreign keys, and triggers
Url usage
By default the package registers the /schema
route in your application.
Visiting this url the package will generate a pdf version of the default database.
The default configuration can be overwritten with the following query parameters (e.g. /schema?output_file="database.pdf"
):
output_file
The name of the generated file
output_format
The output file type, possible values: pdf, png, svg, html
connection
The connection name to use for diagram generation
info_level
Info level for SchemaCrawler, possible values are: detailed, maximum, minimum, standard, unknown
command
- See the available commands above
Configuration
The default values for the above detailed configuration options are set up in the package's config file. If you'd like to change these default values, publish the config file with the following command:
php artisan vendor:publish --provider="DanielWerner\LaravelSchemaCrawler\LaravelSchemaCrawlerServiceProvider"
The above command will publish the laravel-schemacrawler.php
file to your application's config
directory.
Example output
This is the database schema of my pet projects Tracy.
Testing
composer test
Changelog
Please see CHANGELOG for more information what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security
If you discover any security related issues, please email vernerd@gmail.com instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.
Laravel Package Boilerplate
This package was generated using the Laravel Package Boilerplate.