Ich möchte ein Feld zu einer vorhandenen Domänenklasse hinzufügen. Ich möchte meine Ansichtsdateien jedoch nicht verlieren, da ich weiß, dass es passieren wird, wenn ich generate-all ausführen werde. Gibt es eine andere Möglichkeit, das Mapping etc. zu aktualisieren?Hinzufügen eines Feldes zu einer Grails-Domain-Klasse?
Antwort
Ich denke, das ist ein gemeinsames Anliegen.
Dies ist keine direkte Lösung für Ihr Problem, aber das ist, was ich mache und sehr gut für mich arbeitet.
Ich mache nie direkten Änderungen an den grails rüstet Artefakte (Ansichten und Controller)
ich meine Produktion Ansichten halten/Controller der eingerüstete Artefakte trennen; Durch den Gerüstbau nutze ich als Ausgangspunkt meiner Anwendung Controller und Ansichten.
Wenn Änderungen am Domänenmodell vorgenommen werden, erzeuge ich die Ansichten erneut und kopiere (wenn möglich) aus gerüsteten Artefakten in handcodierte Artefakte.
Irgendwann lösche ich entweder alle gerüsteten Artefakte aus der App oder schütze den Zugriff darauf.
Hoffe, das hilft.
erklären es einfach:
class MyDomain {
String newField;
}
alles, was Sie tun müssen, werden sollte, um.
Das wird die vorhandene Ansicht überschreiben, die nicht das ist, was sie wollen. – Jared
Es gibt mehrere Möglichkeiten, dies zu tun.
Wenn Sie Ihre generierten Ansichten nicht geändert haben zu viel und werden mit Versionskontrolle, könnten Sie grails erlauben, Ihre Ansichten zu überschreiben und dann die Änderungen an die neuen Vorlagen mit verschmelzen, was in der Versionskontrolle ist.
Wenn Sie Ihre generierten Ansichten geändert haben, können Sie die Eingabeaufforderung zum Überschreiben der Ansichten einfach mit no beantworten. Wenn Sie nur ein neues Feld hinzufügen, einen Feldnamen oder etwas Ähnliches ändern, sollten Sie die Ansichtsvorlagen manuell anpassen.
Sie würden auf die gleiche Weise mit möglichen Änderungen an den Controllern umgehen.
Generieren Sie die Ansichten nicht neu, kopieren Sie einfach ein ähnliches Feld in das Feld, das Sie in die gewünschte (n) Ansicht (en) einfügen.
- 1. Hinzufügen eines Feldes zu einem Formular (jQuery)
- 2. Hinzufügen eines Feldes zu einer Datei basierend auf Checkbox-Wert
- 3. Hinzufügen eines Feldes zu einem bestehenden Django-Modell
- 4. Hinzufügen eines Count-Feldes zu einem Django Rest Framework Serializer
- 5. Inkrementieren eines Feldes in einer Datenbank
- 6. Datentyp eines Feldes
- 7. Codierung eines Feldes innerhalb einer Gridview
- 8. Erstellen eines "anderen" Feldes
- 9. SQL - Aktualisieren eines Feldes
- 10. Eclipse: Wie wird Getter beim Hinzufügen eines Feldes automatisch generiert?
- 11. Hinzufügen eines neuen Feldes zum Laravel-Boilerplate-Benutzermodell
- 12. Fehler nach dem Hinzufügen eines neuen Feldes in Django Models
- 13. Hinzufügen eines Ausdrucks zu einer MS Access-Tabelle
- 14. Auswahl eines Feldes in Protractor
- 15. Hinzufügen eines TM-SuperScript zu einer Zeichenfolge
- 16. Hinzufügen eines Sprites zu einer rotierenden Kugel
- 17. Python Hinzufügen eines Klassenobjekts zu einer Liste
- 18. Hinzufügen eines Klickereignisses zu einer Google-Karte
- 19. Hinzufügen eines Const-Qualifikationsmerkmals zu einer Elementfunktion
- 20. Hinzufügen eines Beitrittsschlüssels zu einer Gruppe
- 21. Hinzufügen eines Konstruktors zu einer C# -Systemklasse
- 22. Hinzufügen eines anonymen Unterklassenobjekts zu einer Basisklassenliste
- 23. Hinzufügen eines Speicherplatzes zu einer verknüpften Liste
- 24. Hinzufügen eines Menüs zu einer leeren Aktivität
- 25. Hinzufügen eines Objekts zu einer HashMap
- 26. Hinzufügen eines Schattens zu einer NSImageView
- 27. Hinzufügen eines Blogs zu einer bestehenden Webseite
- 28. Hinzufügen eines UISearchControllers zu einer Nicht-Tabellenansicht
- 29. Hinzufügen eines Dendrogramms zu einer ggplot2-Heatmap
- 30. Cocos2d Hinzufügen eines Hintergrundbildes zu einer Ebene?
Wie nennen Sie Ihre benutzerdefinierte Ansicht/Controller? Es scheint, dass Sie von den Benennungskonventionen der Grails abweichen müssten, um dies zum Laufen zu bringen. Dies ist ein häufiges Problem und eine gute Lösung wäre großartig. –
Die Benennung der Ansichten und Controller erfolgt basierend auf den Anwendungsanforderungen. Zum Beispiel gab es in einer aktuellen Anwendung 50 Domänenklassen, und die Anwendungsschnittstelle hatte 5 Hauptmenüs (Home, Kontakte, Kalender, usw.). Meine Controller waren also HomeController, ContactsController und so weiter. –