5

Während der Entwicklung führe ich oft den Befehl schema:update von Doctrine aus, um das Datenbankschema mit meinen sich ändernden Entitätsdefinitionen zu synchronisieren. Sobald ich bereit bin, ein Feature zu committen, möchte ich alle Änderungen in eine migration class aufrollen, die ich zu git committieren kann.Workflow zum Verwalten von Schemaänderungen mit Doctrine2

Das Problem ist, dass ich migrations:diff ausführen muss, muss ich das Datenbankschema auf seinen Zustand zurücksetzen, bevor ich begann, mit schema:update zu verwirren. Doing schema:drop dann migrations:migrate ist nicht gut, weil das Löschen des Schemas die Tabelle migration_versions nicht fallen lässt. Das bedeutet, dass ich in MySQL gehen und alle Datenbanken manuell löschen muss, bevor ich die bestehenden Migrationen durchführe und die neue erstelle.

Es funktioniert, aber es fühlt sich an, als würde ich es falsch machen. Irgendwelche besseren Ideen?

+0

Ich versuche, das gleiche herauszufinden. Haben Sie sich gefragt, ob Sie einen Workflow für die Verwaltung von Schemaänderungen mit Doctrine2 entwickelt haben? – Marcel

Antwort

0

Ich weiß nicht 100% richtige Antwort auf die Frage, aber es gab eine Option. Jedes Mal, wenn Sie schema:update --force ausführen müssen, dumpen Sie zuerst sql mit schema:update --dump-sql und speichern Sie es. Dann ist die Notwendigkeit zum Rollback-Basis nicht notwendig

+0

Für jeden, der sich dies anschaut, beachte, dass du 'schema: update --force --dump-sql' verwenden kannst, um das Update auszuführen und dir die SQL auf einmal zu geben. – dkisselev