Die besten Methoden, um doctrine.yaml-Einstellungen gezielt zu prüfen
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