Symfony: Fehler beim Zuordnen des Datenbank-Enum-Feldtyps

Erstellt am 10. Mai 2011  ·  11Kommentare  ·  Quelle: symfony/symfony

Fehler beim Zuordnen der Datenbank

Ich führe aus: php app/console doctrine:mapping :import MyCoreBundle annotation

Kehrt zurück:
[DoctrineDBALDBALException]
Unbekannter Datenbanktyp Enum angefordert, DoctrineDBALPlatformsMySqlPlatform unterstützt dies möglicherweise nicht.

Hilfreichster Kommentar

@rorverwolf Der einfachere Weg, die Zuordnung aus einer Datenbank importieren zu können, besteht darin, sie dem Doctrine StringType zuzuordnen. Siehe das Doctrine-Dokument mit dem zuvor eingefügten Link für die Erklärung. Der Weg, dies in Ihrer Konfiguration zu tun, ist einfach

doctrine:
    dbal:
        connections:
            default:
                user: XXX
                password: XXX
                mapping_types:
                    enum: string

Alle 11 Kommentare

Liste der verfügbaren Doctrine2- Zuordnungstypen , also müssen wir wahrscheinlich jeden nicht unterstützten (von Doctrine2) Standardtyp in _string_ konvertieren.

Sie werden hier feststellen, dass Doktrin2 den Enum-Typ nicht unterstützt: http://www.doctrine-project.org/docs/orm/2.0/en/reference/basic-mapping.html#doctrine -mapping-types. Wenn es also ein Problem gibt, sollte es der Doktrin gemeldet werden.

Das ist kein Symfony-Problem, sondern ein Doctrine-Problem. Es sollte behoben werden, wenn Sie der Dokumentation zur Unterstützung von MySQL ENUM folgen: http://www.doctrine-project.org/docs/orm/2.0/en/cookbook/mysql-enums.html

@michelsalib : aber ich habe hier etwas über enum gefunden!!!

http://www.doctrine-project.org/docs/orm/2.0/en/cookbook/mysql-enums.html#solution -1-mapping-to-varchars

@ouardisoft : Das wusste ich nicht. Sie haben also Recht, ich könnte ein Problem im Zusammenhang mit Symfony2 haben. Ich werde im Moment nicht nachforschen, solange ich nicht viel Zeit dafür habe. Aber ich werde dem Thema folgen.

@stloyd Dies löst das Problem nicht und erstellt ein neues.
Sie könnten benutzerdefinierte Typen verwenden, was jetzt unmöglich ist.
Und die Ausnahme wird nicht beim Lesen Ihres Mappings ausgelöst, sondern beim Untersuchen der Datenbank, um das Schema zu vergleichen.

@ouardisoft Lesen Sie den eingefügten Link. Dies ist ein Kochbucheintrag über die Verwendung von ENUM. Es heißt nicht, dass Doctrine dies standardmäßig unterstützt.

Für alle anderen, die versuchen, viel Zeit damit zu verbringen, herauszufinden, wie man aus einer Datenbank importiert, die Aufzählungen verwendet, und sie in Strings umwandelt, http://symfony.com/doc/current/cookbook/doctrine/dbal. html hat am Ende ein Beispiel, das zeigt, wie man die Einstellung „mapping_types“ auf dbal setzt.

@rorverwolf Der einfachere Weg, die Zuordnung aus einer Datenbank importieren zu können, besteht darin, sie dem Doctrine StringType zuzuordnen. Siehe das Doctrine-Dokument mit dem zuvor eingefügten Link für die Erklärung. Der Weg, dies in Ihrer Konfiguration zu tun, ist einfach

doctrine:
    dbal:
        connections:
            default:
                user: XXX
                password: XXX
                mapping_types:
                    enum: string

Vielen Dank.

Vielen Dank, du hast mein Leben gerettet!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen