inlm/schema-generator

PHP应用的Schema生成器。

资助包维护!
其他

v1.1.0 2024-06-12 08:39 UTC

README

Build Status Downloads this Month Latest Stable Version License

Donate

安装

下载最新包 或使用 Composer

composer require inlm/schema-generator

Schema Generator需要PHP 5.6.0或更高版本。

用法

$extractor = new Inlm\SchemaGenerator\LeanMapperBridge\LeanMapperExtractor(__DIR__ . '/model/Entities/', new LeanMapper\DefaultMapper);
$adapter = new Inlm\SchemaGenerator\Adapters\NeonAdapter(__DIR__ . '/.schema.neon');
$dumper = new Inlm\SchemaGenerator\Dumpers\SqlDumper(__DIR__ . '/migrations/structures/');
$logger = new Inlm\SchemaGenerator\Loggers\MemoryLogger;

$generator = new Inlm\SchemaGenerator\SchemaGenerator($extractor, $adapter, $dumper, $logger, Inlm\SchemaGenerator\Database::MYSQL);
// $generator->setTestMode();

$generator->generate();
// or
$generator->generate('changes description');

文档

支持的数据库

  • MySQL

它如何工作?

  1. 适配器如果存在则加载旧schema。Schema可以存储在文件、内存、...
  2. 提取器从实体、文件、数据库等中提取新schema
  3. 生成器生成旧和新schema之间的差异
  4. 转储器将差异转储到SQL文件、数据库、...
  5. 适配器保存新schema(仅当禁用测试模式时)

提取器

从给定的源提取新的数据库schema - 实体、数据库或文件。

适配器

在文件、内存、...中持久化数据库schema

转储器

将数据库schema的更改转储到迁移文件、数据库、...

日志记录器

您可以使用来自 czproject/logger 的日志记录器。

  • CzProject\Logger\CliLogger
  • CzProject\Logger\MemoryLogger
  • CzProject\Logger\OutputLogger
  • 或其他

更多

提示

如果您需要在ALTER TABLE语句中生成... AFTER column,请调用

$schemaGenerator->enablePositionChanges();

许可协议: 新BSD许可
作者:Jan Pecha,https://www.janpecha.cz/