snowcookie / generate-schema
Generate schema from database
Installs: 55
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 1
Open Issues: 0
Type:libary
Requires
- php: >=8.1.0
- illuminate/console: 10.*
- illuminate/database: 10.*
- illuminate/filesystem: 10.*
- illuminate/support: 10.*
Requires (Dev)
- mockery/mockery: ^1.5
- openspout/openspout: ^4.12
- orchestra/testbench: ^8.0
- phpunit/phpunit: ^10.0
Suggests
- openspout/openspout: Required to use csv renderer or xlsx renderer. (^4.12)
README
Generate schema from database
Requirement
Laravel | GenerateSchema |
---|---|
6.x | 3.x |
7.x | 4.x |
8.x | 5.x |
9.x | 6.x |
10.x | 7.x |
Usage
- add packeage
composer require --dev snowcookie/generate-schema
- add conditionally loading service provider to app/Providers/AppServiceProvider.php
public function register()
{
...
if (class_exists('Snowcookie\GenerateSchema\GenerateSchemaServiceProvider')) {
$this->app->register('Snowcookie\GenerateSchema\GenerateSchemaServiceProvider');
}
...
}
- publish config file
php artisan vendor:publish --tag=generate-schema
- generate scheam with command
php artisan tools:generate_schema --storage_disk=local
Support Database
- Mysql (MysqlManager)
- Postgres (PostgresManager)
Extend Database Manager
<?php
use Snowcookie\GenerateSchema\Contracts\GeneratorDatabaseManager;
class CustomGeneratorDatabaseManager implements GeneratorDatabaseManager
{
...
}
Support Renderer
- Plain text (TxtRenderer, per table one file)
example: migrations.txt
+-----------+------------------+-----+----------+---------+-----------------+------------+------------+
| name | type | key | nullable | default | constraint_name | index_name | referenced |
+-----------+------------------+-----+----------+---------+-----------------+------------+------------+
| id | int(10) unsigned | PRI | NO | | | PRIMARY | |
| migration | varchar(255) | | NO | | | | |
| batch | int(11) | | NO | | | | |
+-----------+------------------+-----+----------+---------+-----------------+------------+------------+
- Csv (CsvRenderer, per table one file, delimiter
,
) - Xlsx (XlsxRenderer, one file, per table one sheet)
Extend Renderer
<?php
use Snowcookie\GenerateSchema\Contracts\GeneratorRenderer;
class CustomGeneratorRenderer implements GeneratorRenderer
{
...
}