snowcookie/generate-schema

从数据库生成模式

v7.0.0 2023-02-21 14:35 UTC

README

Build Status

从数据库生成模式

需求

用法

  • 添加包
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
{
    ...
}