snowcookie / generate-schema
从数据库生成模式
v7.0.0
2023-02-21 14:35 UTC
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
从数据库生成模式
需求
用法
- 添加包
composer require --dev snowcookie/generate-schema
- 将条件加载的服务提供者添加到 app/Providers/AppServiceProvider.php
public function register()
{
...
if (class_exists('Snowcookie\GenerateSchema\GenerateSchemaServiceProvider')) {
$this->app->register('Snowcookie\GenerateSchema\GenerateSchemaServiceProvider');
}
...
}
- 发布配置文件
php artisan vendor:publish --tag=generate-schema
- 使用命令生成模式
php artisan tools:generate_schema --storage_disk=local
支持数据库
- Mysql (MysqlManager)
- Postgres (PostgresManager)
扩展数据库管理器
<?php
use Snowcookie\GenerateSchema\Contracts\GeneratorDatabaseManager;
class CustomGeneratorDatabaseManager implements GeneratorDatabaseManager
{
...
}
支持渲染器
- 纯文本 (TxtRenderer, 每张表一个文件)
例如: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, 每张表一个文件,分隔符
,
) - Xlsx (XlsxRenderer, 一个文件,每张表一个工作表)
扩展渲染器
<?php
use Snowcookie\GenerateSchema\Contracts\GeneratorRenderer;
class CustomGeneratorRenderer implements GeneratorRenderer
{
...
}