Je voudrais ajouter un champ à une classe de domaine existante. Je ne veux pas perdre mes fichiers de vue, mais je sais que ça arrivera si je lance generate-all. Y a-t-il un autre moyen de mettre à jour la cartographie, etc.?Ajouter un champ à une classe de domaine Grails?
Répondre
Je pense que c'est une préoccupation commune.
Ce n'est pas une solution directe à votre problème, mais c'est ce que je fais et cela fonctionne très bien pour moi.
Je ne fais jamais de modifications directes aux Grails artefacts échafaudés (vues et contrôleurs)
Je garde mes vues sur la production/contrôleurs séparés des objets échafaudés; à travers j'utilise l'échafaudage comme point de départ de mes contrôleurs d'applications et de vues.
S'il y a des changements au modèle de domaine, je recréer les vues et copier-coller (dans la mesure du possible) des artefacts échafaudés aux artefacts codés manuellement. À un certain point, je supprime tous les artefacts échafaudés de l'application ou je protège juste l'accès à ceux-ci.
Espérons que cela aide.
déclare simplement:
class MyDomain {
String newField;
}
devrait être tout ce que vous devez faire.
Cela écrasera la vue existante qui n'est pas ce qu'ils veulent. – Jared
Il y a plusieurs façons de le faire.
Si vous ne l'avez pas modifié trop vos vues générées et que vous utilisez le contrôle de version, vous pouvez permettre Grails d'écraser vos points de vue, puis fusionner les modifications apportées aux nouveaux modèles avec ce qui est dans le contrôle de version.
Si vous avez modifié vos vues générées, vous pouvez simplement répondre non à l'invite d'écrasement des vues. Si vous ajoutez seulement un nouveau champ, en changeant un nom de champ ou quelque chose de simple, modifiez les modèles d'affichage devrait être assez simple à faire manuellement.
Vous traiterez les modifications possibles des contrôleurs de la même manière.
Ne pas régénérer les vues, il suffit de copier et coller un autre champ similaire à celui que vous mettez dans la vue que vous voulez.
- 1. Importer du code XML dans une classe de domaine Grails
- 2. Comment référencer un champs de classe de domaine Grails depuis l'extérieur du contrôleur Grails et afficher?
- 3. Dans Grails, comment déclarer un nom de schéma SQL Server pour une classe de domaine?
- 4. toString() dans Grails Classe de domaine Java Causes
- 5. Ajouter 1 à un champ
- 6. domaine classe Grails validateur, la propriété doit être supérieure à une autre propriété
- 7. Comment ajouter un événement à une classe
- 8. Comment ajouter dynamiquement un champ à une classe Java en utilisant Groovy?
- 9. Comment ajouter automatiquement le domaine EMAIL au champ entré
- 10. Comment ajouter une valeur à partir d'un champ de formulaire dans un nouveau champ de formulaire
- 11. Méthode de service ou méthode statique de domaine dans Grails?
- 12. ajouter un alias de serveur à VHOST du domaine?
- 13. Hibernate mappant un second champ @Embeddable dans une sous-classe
- 14. Ajouter une classe partielle à TableAdapter
- 15. Comment ajouter un objet IDisposable + delegate à une classe existante
- 16. C#: Comment ajouter un destructeur à une classe personnalisée?
- 17. Comment faire pour déterminer une classe parente dans Grails
- 18. Comment puis-je ajouter une classe à un CodeIgniter Anchor
- 19. Comment obtenir le type (classe) d'une propriété d'un objet de domaine Grails?
- 20. Ajouter un nouveau champ à plusieurs tables à la fois?
- 21. Élimination des fonctions Ajouter et Supprimer pour une classe dans l'application Grails
- 22. Mantis - Ajouter un champ de version
- 23. Sauvegarder les classes de domaine associées dans Grails
- 24. comment définir si le domaine a plus d'un champ unique dans les grails?
- 25. Ajouter un à la valeur d'un champ de texte
- 26. Ajouter un sous-domaine d'administration dans asp.net
- 27. Nécessité de prendre deux valeurs de champ de texte et ajouter ainsi à un autre champ
- 28. Définition de l'ID de domaine Grails dans Bootstrap.groovy
- 29. Injection de dépendances dans les contrôleurs de domaine Grails
- 30. Ajouter un champ au modèle, comme annoter
Comment nommez-vous vos vues/contrôleurs personnalisés? Il semble que vous deviez diverger des conventions de nommage des grails pour que cela fonctionne. C'est un problème commun et une bonne solution serait géniale. –
La dénomination des vues et des contrôleurs est effectuée en fonction des exigences de l'application. Par exemple, dans une application récente, il y avait 50 classes de domaine, et l'interface de l'application comportait 5 menus principaux (accueil, contacts, calendrier, etc.). Ainsi, mes contrôleurs étaient HomeController, ContactsController et ainsi de suite. –