Artikel

Die besten Methoden, um doctrine.yaml-Einstellungen gezielt zu prüfen

AllgemeinSymfony

Hier eine Sammlung von nützlichen Symfony-/Doctrine-Befehlen, um deine Datenbank- und Messenger-Konfiguration umfassend zu testen. Nicht alle brauchst du im Alltag – aber so hast du eine „Checkliste“ für alle Fälle:


1) Allgemeine Symfony-Infos

Umgebungsvariablen prüfen

php bin/console debug:container --env-vars | grep DATABASE_URL
php bin/console debug:container --env-vars | grep MESSENGER_TRANSPORT_DSN

Zeigt dir, ob die DB-URLs (z. B. DATABASE_URL_DBUSER) und der Messenger-Transport richtig erkannt werden.

Allgemeine Container-Debugs

php bin/console debug:container
php bin/console debug:config doctrine
php bin/console debug:config doctrine_migrations
php bin/console debug:config framework messenger

Damit siehst du, wie Doctrine, DoctrineMigrations und Messenger letztlich konfiguriert sind.


2) Doctrine (Schemas, Migrations, etc.)

Schema validieren

php bin/console doctrine:schema:validate

Checkt, ob die Entities sauber mit der DB übereinstimmen (Mapping & Schema).

Migrationen erstellen (Vergleicht Entity vs. DB)

php bin/console doctrine:migrations:diff

Generiert eine neue Migrationsklasse, falls DB und Entities abweichen.

Migrationen anwenden

php bin/console doctrine:migrations:migrate

Führt alle noch nicht angewendeten Migrations aus.

Migrations-Status / Liste

php bin/console doctrine:migrations:list

Zeigt dir an, welche Migrations es gibt und ob sie schon ausgeführt wurden.

Direkte SQL-Queries

php bin/console doctrine:query:sql "SHOW TABLES;"
php bin/console doctrine:query:sql "SELECT * FROM messenger_messages;
php bin/console doctrine:query:sql "SELECT VERSION()"

Um zu prüfen, ob Tabellen existieren, Einträge vorhanden sind usw.

(Optional) DB anlegen / löschen

php bin/console doctrine:database:create
php bin/console doctrine:database:drop --force

Brauchst du normalerweise nicht mehr, wenn dein Setup steht. Aber damit kannst du testen, ob die XXX-Connection (oder was auch immer du gerade nutzt) korrekt CREATE-/DROP-Rechte hat.


3) Messenger / Queue-Tests

Transports einrichten

php bin/console messenger:setup-transports
# oder gezielt:
php bin/console messenger:setup-transports async
php bin/console messenger:setup-transports failed

Legt Tabellen für die angegebenen Transports an (z. B. messenger_messages, messenger_messages_failed).

Messenger-Debug

php bin/console debug:messenger

Zeigt dir die registrierten Buses, Handler, Transports, etc.

Nachrichten konsumieren (Worker starten)

php bin/console messenger:consume async

Verarbeitet deine Nachrichten aus der DB-Queue (async).

Prüfe die Logs oder Konsolenausgabe, ob es zu Fehlermeldungen kommt.

Failure-Transport testen

Wenn du absichtlich einen Fehler in einem Handler erzeugst, kann die Nachricht nach X Retries in den Failure-Transport wandern (messenger_messages_failed).

Dann kannst du prüfen, ob php bin/console messenger:consume failed oder manuelle Weiterverarbeitung funktioniert.


4) Zusätzliche Checks

Check in Test-Umgebung

php bin/console --env=test doctrine:database:create
php bin/console --env=test doctrine:migrations:migrate
php bin/console --env=test doctrine:schema:validate

Falls du Unit/Functional Tests nutzt, stell sicher, dass dein Test-Setup auch stimmt.

Sonstige Debug-Befehle

  • php bin/console debug:router (Routencheck)
  • php bin/console debug:autowiring (Welche Services autowirable sind)
  • php bin/console about (Kurzinfo über dein Projekt)

Fazit

Mit dieser „Befehlssammlung“ kannst du deine DB-Konfiguration (verschiedene Connections, Migrations, Entities) und deinen Messenger (Doctrine-Transport) gründlich auf Funktion prüfen. Wenn all diese Befehle ohne Fehler durchlaufen und das gewünschte Ergebnis liefern (Datenbanktabellen vorhanden, Migrations synchron, Messenger-Tabellen angelegt, Worker konsumiert Nachrichten usw.), dann ist dein Setup in der Regel stable und korrekt.

0 Kommentare