J'utilise le générateur jhipster pour créer un projet. J'ai généré une entité manuellement en suivant les informations fournies dans documentation de jhipster :
Si vous préférez (ou devez) faire une mise à jour manuelle de la base de données, voici le workflow de développement: Modifiez votre entité JPA (ajoutez un champ, une relation , Etc.) Créez un nouveau "journal des modifications" dans votre fichier src/main/resources/config/liquibase/répertoire de changelog. Les fichiers dans ces répertoires sont préfixés par leur date de création (au format aaaaaMMjjHHmmss ) et ont ensuite un titre décrivant ce qu’ils font. Par exemple, 20141006152300_added_price_to_product.xml est un bon nom. Ajoute ça "change log" fichier dans votre fichier src/main/resources/config/liquibase/master.xml, de sorte qu'il est appliqué la prochaine fois que vous exécuterez votre application Si vous souhaitez plus d'informations sur en utilisant Liquibase, veuillez vous rendre sur http://www.liquibase.org .
Ici, la documentation ne fait que mentionner, comment ajouter !!! Que faire si je veux supprimer un champ ou une relation entre entités (entité jpa)?
Merci
1) Modifiez le fichier json représentant votre entité (ajouter/supprimer un champ, la syntaxe est assez simple, vérifiez à la fin du fichier s'il est nécessaire de modifier les propriétés de l'entité générale comme 'fieldsContainOneToMany' ...) trouvez-le dans:
<jhipster_root_folder>/.jhipster/entityName.json
2) Construisez le code.
3) Dans la racine de votre projet, exécutez la commande:
yo jhipster:entity entityName
REMARQUE: cette commande écrase par défaut toutes vos modifications manuelles. Je recommande de faire une validation sur un référentiel VCS avant d'exécuter cette commande pour éventuellement annuler toute modification non requise.
4) courir
mvn liquibase:diff
J'ai la solution a fonctionné pour jhipster 3.4.2, c'est le résultat de moi en 1 jour, espérons que cela vous sera utile :)
yo jhipster:entity entityName
changelog .xml
et le fichier navbar.html
.mvn compile liquibase:diff
Dans la même page, vous pouvez voir cette phrase:
Si vous avez choisi d'utiliser MySQL ou Postgresql en développement, vous pouvez utiliser l'objectif mvn liquibase: diff pour générer automatiquement un journal des modifications.
Liquibase Hibernate est un plug-in Maven configuré dans votre pom.xml et indépendant de votre fichier Spring application.yml. Par conséquent, si vous avez modifié les paramètres par défaut (par exemple, le mot de passe de la base de données), vous devez modifier les deux .
Voici le flux de travail de développement:
Modifiez votre entité JPA (ajoutez un champ, une relation, etc.) Compilez votre application (cela fonctionne sur le code Java compilé, alors n'oubliez pas de compiler!) Exécutez mvn liquibase: diff (ou mvn compile liquibase: diff à compiler avant) Un nouveau "journal des modifications" est créé dans votre répertoire src/main/resources/config/liquibase/changelog Consultez ce journal des modifications et ajoutez-le à votre fichier src/main/resources/config/liquibase/master.xml afin qu'il soit appliqué lors de la prochaine exécution de votre application Si vous utilisez Gradle au lieu de Maven, vous pouvez utiliser le même flux de travail en exécutant ./gradlew liquibaseDiffChangelog et modifier la configuration de la base de données dans liquibase.gradle si nécessaire.
Il vous suffit donc de modifier vos entités JPA (supprimer, ajouter, etc.), d’exécuter mvn compile liquibase: diff et de placer les modifications dans master.xml.
Vous pouvez également modifier des entités existantes de manière interactive, par exemple. en utilisant yo jhipster:entity Foo
pour entité Foo
.
De cette façon, vous pouvez régénérer toutes les entités et tous les dialogues.
Si vous utilisez un SGBDR et Liquibase, vous devez écrire le (s) fichier (s) de changelog et l'ajouter au fichier master.xml Ce qui aide ici, c'est d'utiliser mvn liquibase:diff
ou gradlew liquibaseDiff
, que vous pouvez exécuter avec votre base de données existante. Cependant, je recommanderais d’écrire les fichiers changelog manuellement.
Pour jhipster 5.7.0, vous pouvez exécuter à nouveau la commande entity et il vous sera demandé si vous souhaitez la modifier.
% jhipster entity device
INFO! Using JHipster version installed locally in current project's node_modules
INFO! Executing jhipster:entity device
INFO! Options: from-cli: true
Found the .jhipster/Device.json configuration file, entity can be automatically generated!
The entity device is being updated.
? Do you want to update the entity? This will replace the existing files for this entity, all your custom code will be overwritten
Yes, re generate the entity
❯ Yes, add more fields and relationships
Yes, remove fields and relationships
No, exit
Ce que j'ai fait pour modifier l'entité jhipster comme une relation afin d'ajouter de nouvelles tables était:
Note: Si après cette étape, il y a une erreur, serverError ou quelque chose que je régénère de entity regenerate Entity . Bien sûr, si vous souhaitez conserver toutes vos données, ce n'est pas une bonne alternative.