Ich habe ein seltsames Problem: Ich habe eine Anwendung symfony 2.3 (mit Sonatenbenutzer) Ich habe ein Bündel mit einer Entität erstellt - die Entität wurde ohne Probleme erstellt dann musste ich die Entity ändern und jetzt scheint es unmöglich zu sein, das Schema zu ändern:
Um zu sehen, was passiert, habe ich alle String-Längen um +1 erhöht
Der Entitätscode (mit Anmerkungen):
%Vor%Sieh jetzt das Ergebnis von:
%Vor%Keine der neuen Längen wird berücksichtigt: zum Beispiel sollte das Feld nom Länge = 101 haben, aber die dump-sql gibt nom VARCHAR (100)!
Könnte jemand versuchen herauszufinden, was schief läuft? Danke!
BEARBEITEN: Ich habe versucht, den Cache vorher mit: * php App / Konsole Lehre: Cache: Clear-Metadaten * PHP-App / Konsolen-Cache: Löschen * durch Löschen aller Inhalte in Cache-Ordnern
Ich habe auch versucht --dump-sql und --force.
Das ändert überhaupt nichts. Bitte einen Hinweis wäre willkommen!
Ich habe gerade das genau gleiche Problem erreicht: Das Schema wird nicht aktualisiert.
Beachten Sie, dass --force genau dasselbe zurückgibt wie --dump-sql. Der einzige Unterschied ist, dass --force das SQL für die Datenbank ausführt.
In meinem Fall war das Problem jedoch nicht auf die Datei .orm.xml zurückzuführen. Das liegt daran, dass ich dies in der Datei config_dev.xml festgelegt habe:
%Vor%Auch wenn ich oft eine Retterin erstelle:
%Vor%Die Memcached-Daten werden nicht geleert. Also musste ich Memcached neu starten, dann war alles wieder am Laufen!
Also danke für Ihre Frage, es hat mich an die richtige Stelle in meinem Fall geführt.
UPDATE: Wie Phil oben vorgeschlagen hat, macht das Ausführen dieses Befehls auch den Trick:
%Vor%Es ist möglich, dass Sie vergessen, Doctrine auto mapping zu aktivieren;
%Vor%Wenn die automatische Zuordnung deaktiviert ist (oder wie oben erwähnt), sollten Sie die Entitäten jedes Bündels manuell registrieren.
%Vor%Ich habe die Lösung gefunden: Ich habe es vorher nicht gesehen, aber es gab einen Doktrin-Ordner in src \ Too \ ConfigAppBundle \ Resources \ config, der eine Datei namens ConfigApp.orm.yml enthielt:
%Vor%Ich habe diesen Ordner gelöscht und nun funktioniert das Aktualisieren des Schemas erneut.
Sicher habe ich etwas gemacht, um diesen Doktrin-Ordner zu erstellen, aber ich weiß nicht, was es war - wenn mir jemand sagen könnte, wie dieses Zeug erzeugt wird - und warum?
Ich denke, es ist wegen der Doktrin: Mapping: Import-Befehl. Dieser Befehl speichert das Schema einer vorhandenen Datenbank in .orm.xml-Dateien. Möglicherweise führen Sie diesen Befehl aus.
Ich hatte das gleiche Problem, lassen Sie mich eine Menge Zeit, um herauszufinden.
Geben Sie php app/console help doctrine:schema:update
in CLI
Probieren Sie also --force
statt --dump-sql
.
Und hier ist der Befehl zum Löschen des Cache:
%Vor% Vergessen Sie nicht, das Schlüsselwort help
vor einem Befehlsnamensraum zu verwenden, um die Hilfemeldung für diesen Befehl zu erhalten.
Ich hoffe, es hilft
Da ich .orm.yml
-mapping verwendet habe, hatte ich das Problem, dass ich den doctrine
-Ordner, in dem die yml
mappings vorhanden waren, unter dem falschen Pfad erstellt habe, also habe ich ihn durch Verschieben von% co_de behoben % -Ordner zum Ordner doctrine
:
config