bonusone/doctrine-reverse-engineering

Doctrine entity and repository generator that reverse engineers an existing database for Symfony 6/7 projects.

Installs: 4

Dependents: 0

Suggesters: 0

Security: 0

Stars: 20

Watchers: 0

Forks: 0

Type:symfony-bundle

pkg:composer/bonusone/doctrine-reverse-engineering

v1.0.2 2025-11-07 20:01 UTC

This package is auto-updated.

Last update: 2025-11-07 20:01:30 UTC


README

Doctrine entity and repository generator that reverse engineers an existing database for Symfony 6/7 projects.

Requirements

  • PHP 8.2 or newer
  • Symfony FrameworkBundle 6.4/7.x
  • Doctrine DBAL 3.8+
  • A valid DATABASE_URL connection string

Installation

composer require bonusone/doctrine-reverse-engineering

The bundle registers itself automatically thanks to the symfony.bundle section in composer.json.

Optional Configuration

Override default paths or behaviour by adding config/packages/doctrine_reverse_engineering.yaml in your application:

doctrine_reverse_engineering:
    entity_path: '%kernel.project_dir%/src/Entity'
    entity_namespace: 'App\Entity'
    repository_path: '%kernel.project_dir%/src/Repository'
    repository_namespace: 'App\Repository'
    generate_repositories: true
    overwrite_existing: false

Usage

Generate all tables without overwriting existing files:

php bin/console doctrine:reverse-engineering:generate

Available options:

Option Description
--connection Doctrine connection name (defaults to default)
--entity-path / --entity-namespace Target path and base namespace for entities
--repository-path / --repository-namespace Target path and base namespace for repositories
--repositories=auto/yes/no Force repository generation on/off or reuse configuration
--overwrite / --no-overwrite Control whether existing files are replaced
--table=foo --table=bar Limit generation to selected tables
--dry-run Preview the output without writing files

Shortcut wrapper available via vendor/bin:

vendor/bin/doctrine-reverse-engineering --table=users --overwrite

License

Released under the MIT License (see LICENSE).