PHPackages                             inlm/schema-generator - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. inlm/schema-generator

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

inlm/schema-generator
=====================

Schema generator for PHP apps.

v1.2.0(1y ago)91.6k2BSD-3-ClausePHPPHP 8.0 - 8.4CI passing

Since Jun 29Pushed 1y ago2 watchersCompare

[ Source](https://github.com/inlm/schema-generator)[ Packagist](https://packagist.org/packages/inlm/schema-generator)[ Fund](https://www.janpecha.cz/donate/schema-generator/)[ RSS](/packages/inlm-schema-generator/feed)WikiDiscussions master Synced today

READMEChangelog (10)Dependencies (8)Versions (48)Used By (2)

Schema Generator
================

[](#schema-generator)

[![Build Status](https://github.com/inlm/schema-generator/workflows/Build/badge.svg)](https://github.com/inlm/schema-generator/actions)[![Downloads this Month](https://camo.githubusercontent.com/9265b779cb17012f988838ebb01df73808fdb6818973b8c34f587a994b3949a8/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f646d2f696e6c6d2f736368656d612d67656e657261746f722e737667)](https://packagist.org/packages/inlm/schema-generator)[![Latest Stable Version](https://camo.githubusercontent.com/5b30d858df1d0b00a461855720072f8263b2df03e31915d158d932a3b0346c64/68747470733a2f2f706f7365722e707567782e6f72672f696e6c6d2f736368656d612d67656e657261746f722f762f737461626c65)](https://github.com/inlm/schema-generator/releases)[![License](https://camo.githubusercontent.com/fa7d5fcf2c84b580327af52da95dd751703af65f079dc3c5a0081beac0789718/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4e65772532304253442d626c75652e737667)](https://github.com/inlm/schema-generator/blob/master/license.md)

[![Donate](https://camo.githubusercontent.com/101b981194f1dafbf9c42e19c3034fe2d724e75be972cef0f4477074997834db/68747470733a2f2f6275796d65636f666665652e696e746d2e6f72672f696d672f646f6e6174652d62616e6e65722e76312e737667)](https://www.janpecha.cz/donate/schema-generator/)

Installation
------------

[](#installation)

[Download a latest package](https://github.com/inlm/schema-generator/releases) or use [Composer](http://getcomposer.org/):

```
composer require inlm/schema-generator

```

Schema Generator requires PHP 8.0 or later.

Usage
-----

[](#usage)

```
$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');
```

Documentation
-------------

[](#documentation)

Supported databases:

- MySQL

### How it works?

[](#how-it-works)

1. **adapter** loads old schema if exists. Schema can be stored in file, memory,...
2. **extractor** extracts new schema from entities, file, database,...
3. generator generates diff between old and new schema
4. **dumper** dumps differences to SQL file, database,...
5. **adapter** saves new schema (only if is test mode disabled)

### Extractors

[](#extractors)

Extracts new database schema from given source - entities, database or file.

- [LeanMapperExtractor](https://github.com/inlm/schema-generator-leanmapper) (package `inlm/schema-generator-leanmapper`)
- [DibiExtractor](https://github.com/inlm/schema-generator-dibi) (package `inlm/schema-generator-dibi`)
- [NeonExtractor](docs/neon-extractor.md)

### Adapters

[](#adapters)

Persists database schema in file, memory,...

- [NeonAdapter](docs/neon-adapter.md)
- [MemoryAdapter](docs/memory-adapter.md)
- [DibiAdapter](https://github.com/inlm/schema-generator-dibi) (package `inlm/schema-generator-dibi`)

### Dumpers

[](#dumpers)

Dumps changes of database schema into migration file, database,...

- [SqlDumper](docs/sql-dumper.md)
- [SqlMemoryDumper](docs/sql-memory-dumper.md)
- [DibiDumper](https://github.com/inlm/schema-generator-dibi) (package `inlm/schema-generator-dibi`)
- [NullDumper](docs/null-dumper.md)

### Loggers

[](#loggers)

You can use loggers from `czproject/logger`.

- `CzProject\Logger\CliLogger`
- `CzProject\Logger\MemoryLogger`
- `CzProject\Logger\OutputLogger`
- or any else

### More

[](#more)

- [Default Types](docs/default-types.md)
- [Custom Types](docs/custom-types.md)
- [Table Options](docs/table-options.md)
- [Examples](docs/examples.md)
- [Integrations](docs/integrations.md)
- [Bridges](docs/bridges.md)

Tip

If you need generate `... AFTER column` in `ALTER TABLE` statements, call:

```
$schemaGenerator->enablePositionChanges();
```

---

License: [New BSD License](license.md)
Author: Jan Pecha,

###  Health Score

49

—

FairBetter than 94% of packages

Maintenance50

Moderate activity, may be stable

Popularity22

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity93

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~65 days

Recently: every ~314 days

Total

46

Last Release

367d ago

Major Versions

v0.9.14 → v1.0.02023-07-28

PHP version history (3 changes)v0.3.0PHP &gt;=5.6.0

v0.10.0PHP &gt;=7.2.0

v1.2.0PHP 8.0 - 8.4

### Community

Maintainers

![](https://www.gravatar.com/avatar/5c980b1511b4a0350442dc23d89c99d4d9a2411b7e765d52c133ccacf616968b?d=identicon)[janpecha](/maintainers/janpecha)

---

Top Contributors

[![janpecha](https://avatars.githubusercontent.com/u/637719?v=4)](https://github.com/janpecha "janpecha (188 commits)")

---

Tags

database-schemaleanmapperphpschema-generator

### Embed Badge

![Health badge](/badges/inlm-schema-generator/health.svg)

```
[![Health](https://phpackages.com/badges/inlm-schema-generator/health.svg)](https://phpackages.com/packages/inlm-schema-generator)
```

###  Alternatives

[nette/php-generator

🐘 Nette PHP Generator: generates neat PHP code for you. Supports new PHP 8.5 features.

2.3k72.7M762](/packages/nette-php-generator)[nette/component-model

⚛ Nette Component Model

28817.0M106](/packages/nette-component-model)[symplify/monorepo-builder

Not only Composer tools to build a Monorepo.

5275.9M121](/packages/symplify-monorepo-builder)[nette/code-checker

✅ Nette CodeChecker: A simple tool to check source code against a set of Nette coding standards.

911.7M6](/packages/nette-code-checker)[brandembassy/slim-nette-extension

19201.2k](/packages/brandembassy-slim-nette-extension)[shipmonk/input-mapper

Performant array-to-object mapper supporting generics, array shapes, optional fields and much more!

3030.9k](/packages/shipmonk-input-mapper)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
