Ankündigung

Einklappen
Keine Ankündigung bisher.

Import von Postgres Tabellen funktioniert nicht

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Symfony] Import von Postgres Tabellen funktioniert nicht

    Ich versuche mit Symfony eine bestehende Datenbank zu importieren um so die Entity-Klassen anzulegen. Leider funktioniert dies nicht. Egal was ich versuche, es kommt immer die gleiche Fehlermeldung.
    Zum Beispiel der Befehl
    Code:
    symfony console doctrine:mapping:import "App\Entity" annotation --path=src/Entity  --filter="account_type"
    gibt folgende Fehlermeldung
    Code:
    In AbstractPlatform.php line 434:
    
      Unknown database type schedule_unit requested, Doctrine\DBAL\Platforms\Post  
      greSQL100Platform may not support it.
    Ich habe bis jetzt nicht herausgefunden, was genau das Problem ist. Ich interpretiere die Meldung so, dass die Datenbankversion von Doctrine nicht unterstützt wird. Ich setze folgende Versionen ein:
    Symfony: 4.9.0
    PostgreSQL: 11.5

    Kennt jemand das Problem?

  • #2
    In der Tabelle wird ein selbst definierter Datentyp genutzt. Der musst du vorher Doctrine bekannt machen. https://www.doctrine-project.org/pro...ing-types.html oder https://www.doctrine-project.org/pro...sql-enums.html (1. Lösung)

    Kommentar


    • #3
      In die Richtung bin ich bei meiner Suche auch schon gekommen. Ich hatte es aber wieder veeworfen, da ich ja kein MySQL und auch kein ENUM verwende. Ich werde es mir aber nichmals genau anschauen.
      Was mir nich nicht klar ist, wie ich einen eigenen Typ beim Import definieren kann.

      Kommentar


      • #4
        kannst du nicht einfach mit einem Dump arbeiten?
        PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

        Kommentar


        • #5
          Zitat von magpie Beitrag anzeigen
          In die Richtung bin ich bei meiner Suche auch schon gekommen. Ich hatte es aber wieder verworfen, da ich ja kein MySQL und auch kein ENUM verwende. Ich werde es mir aber nichmals genau anschauen.
          Was mir nich nicht klar ist, wie ich einen eigenen Typ beim Import definieren kann.
          Normalerweise in der cli-config.php (oder gibt es die bei Symfony nicht)?

          PHP-Code:
          $platform $entityManager->getConnection()->getDatabasePlatform();

          $platform->registerDoctrineTypeMapping('db_type''doctrine_type'); 
          sorry, shift-taste kaputt

          Kommentar


          • #6
            Danke für die vielen Infos. Ich werde mir das alles mal in Ruhe anschauen.

            Kommentar


            • #7
              Ich habe mir die Datenbank nochmals angeschaut. Ich habe keine speziellen Datetypen im Einsatz. Mit dem Vorschlag von akretschmer bin ich allerdings weiter gekommen. Ich habe die Tabellen exportiert und mit
              Code:
              symfony console doctrine:database:import table.sql
              in eine neue Datenbank importiert. Danach konnte ich die Entities mit
              Code:
              symfony console doctrine:mapping:import "App\Entity" annotation --path=src/Entity --filter="tablename"
              mappen und importieren.

              Dass ich die Datenbank neu erstellen muss, ist nicht gerade schön, aber es ist ein neues Projekt und es sind noch keine Daten vorhanden.

              Was mir noch aufgefallen ist. Wenn ich die Tabelle mappe und importiere, wird als Name nicht nur der Tabellenname verwendet, sondern auch der Schemaname. Dies ist soweit OK, bis auf das, dass der Name der Klassen Schema.Tabelle (mit einem Punkt getrennt) angelegt wird. Dies wirft einen Syntaxfehler in PHP. Ich musste alle Klassen entsprechend umbenennen.

              Kommentar

              Lädt...
              X