Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Generieren von Entitäten aus der Datenbank

Ihr Fall ist auf der Symfony-Website mit dem Titel "How to generate Entities" gut dokumentiert aus einer bestehenden Datenbank"

Wie in der Dokumentation angegeben:

Verwenden Sie den folgenden Befehl (vorausgesetzt, der Kurzname Ihres Bundles ist GOutsideGOBundle )

Dann müssen Sie anrufen.

Wenn Sie Entitätsklassen mit Annotationszuordnungen generieren müssen, müssen Sie den folgenden Befehl vor doctrine:generate:entities ausführen

Der Pfad sollte nur ./src sein statt ./src/GOutside/GOBundle/Resources/config/doctrine

Aktualisiert:

Wenn in Ihrer Konfiguration alles korrekt ist, erhalten Sie den Fehler Database does not have any mapping information. ist unwahrscheinlich!! Ich bin mir bei diesem Fehler nicht sicher. Aber gemäß Ihrem Datenbanktabellenschema gibt es einige Probleme, die Sie daran hindern, Zuordnungsinformationen zu erstellen.

  1. Ihre Tabelle enthält den speziellen Typ Punkt welche Doktrin nicht umgehen kann.
  2. Ihre Datenbanktabelle hat mehrere Tabellen ohne Primärschlüssel. Doctrine unterstützt kein Reverse Engineering von Tabellen, die keinen Primärschlüssel haben

Um Problem (1) zu lösen, können Sie einen benutzerdefinierte Zuordnung in Ihrem Doktrin-Konfigurationsabschnitt. Um beispielsweise den Punkttyp als Zeichenfolge abzubilden, können Sie Folgendes schreiben:

doctrine:
    dbal:
        //Other connection parameters
        mapping_types:
            point: string

für das zweite Problem müssen Sie den Primärschlüssel für diese Tabellen definieren, das könnten neue Felder oder zusammengesetzte Primärschlüssel sein.