Database schema visualization
OTHER License
The aim of this project is to generate database documentation from sql schema.
$ composer require pongee/database-schema-visualization
or add it the your composer.json and make a composer update pongee/database-schema-visualization.
$ php ./database-schema-visualization mysql:image ./example/schema/sakila.sql > ./example/img/sakila.png
$ php ./database-schema-visualization mysql:image --type png ./example/schema/sakila.sql > ./example/img/sakila.png
Output:
$ php ./database-schema-visualization mysql:image --type svg ./example/schema/sakila.sql > ./example/img/sakila.svg
$ php ./database-schema-visualization mysql:json ./example/schema/sakila.sql
$ php ./database-schema-visualization mysql:plantuml ./example/schema/sakila.sql
<?php declare(strict_types=1);
use Pongee\DatabaseSchemaVisualization\DataObject\Sql\Database\Connection\ConnectionCollection;
use Pongee\DatabaseSchemaVisualization\Export\Plantuml;
use Pongee\DatabaseSchemaVisualization\Generator\ImageGenerator;
use Pongee\DatabaseSchemaVisualization\Parser\MysqlParser;
include __DIR__ . '/../../vendor/autoload.php';
$sqlSchema = '
CREATE TABLE IF NOT EXISTS `foo` (
`id` INT(10) UNSIGNED NOT NULL COMMENT "The id"
) ENGINE=innodb DEFAULT CHARSET=utf8;
';
$sqlParser = new MysqlParser();
// $cqlParser = new \Pongee\DatabaseSchemaVisualization\Parser\CassandraParser();
$plantumlExport = new Plantuml(file_get_contents(__DIR__ . '/../../src/Template/Plantuml/v1.twig'));
$forcedConnectionCollection = new ConnectionCollection();
$imageGenerator = new ImageGenerator(
'png',
__DIR__ . '/../../bin/plantuml.jar',
__DIR__ . '/../../tmp/'
);
$schema = $sqlParser->run($sqlSchema, $forcedConnectionCollection);
print $imageGenerator->generate($plantumlExport->export($schema));
<?php declare(strict_types=1);
use Pongee\DatabaseSchemaVisualization\DataObject\Sql\Database\Connection\ConnectionCollection;
use Pongee\DatabaseSchemaVisualization\Export\Json;
use Pongee\DatabaseSchemaVisualization\Parser\MysqlParser;
include './vendor/autoload.php';
$sqlSchema = '
CREATE TABLE IF NOT EXISTS `foo` (
`id` INT(10) UNSIGNED NOT NULL COMMENT "The id"
) ENGINE=innodb DEFAULT CHARSET=utf8;
';
$mysqlParser = new MysqlParser();
$jsonExport = new Json();
$forcedConnectionCollection = new ConnectionCollection();
$schema = $mysqlParser->run($sqlSchema, $forcedConnectionCollection);
print $jsonExport->export($schema);