java - generate - ¿Cómo modificar la entidad existente generada con jhipster?
jhipster add entity jdl (5)
Yo uso el generador jhipster para crear un proyecto. He generado alguna entidad de forma manual siguiendo la información provista en la documentación de jhipster :
Si prefiere (o necesita) hacer una actualización de base de datos manualmente, aquí está el flujo de trabajo de desarrollo: modifique su entidad JPA (agregue un campo, una relación, etc.) Cree un nuevo "registro de cambios" en su src / main / resources / config / liquibase / changelog directorio. Los archivos en ese directorio están prefijados por su fecha de creación (en el formato aaaaMMddHHmmss), y luego tienen un título que describe lo que hacen. Por ejemplo, 20141006152300_added_price_to_product.xml es un buen nombre. Agregue este archivo de "cambio de registro" en su archivo src / main / resources / config / liquibase / master.xml, de modo que se aplique la próxima vez que ejecute su aplicación. Si desea más información sobre el uso de Liquibase, vaya a http: / /www.liquibase.org .
Aquí la documentación solo menciona, cómo agregar !!! ¿Qué hacer si quiero eliminar un campo o una relación entre entidades (entidad jpa)?
Gracias
1) Edite el archivo json que representa su entidad (campo agregar / eliminar, la sintaxis es bastante fácil, verifique en el final del archivo si se requiere algún cambio en las propiedades generales de la entidad como ''fieldsContainOneToMany'' ...), usted encontrarlo en:
<jhipster_root_folder>/.jhipster/entityName.json
2) Construye el código.
3) En la raíz de su proyecto, ejecute el comando:
yo jhipster:entity entityName
NOTA: este comando sobrescribe por defecto todos sus cambios manuales. Recomiendo realizar una confirmación en un repositorio de VCS antes de ejecutar este comando para eventualmente revertir cualquier cambio no requerido.
4) ejecutar
mvn liquibase:diff
En la misma página puedes ver esta oración:
Si ha elegido utilizar MySQL o Postgresql en desarrollo, puede usar el objetivo mvn liquibase: diff para generar automáticamente un registro de cambios.
Liquibase Hibernate es un plugin Maven que está configurado en su pom.xml, y es independiente de su archivo Spring application.yml, por lo que si ha cambiado la configuración predeterminada (por ejemplo, cambió la contraseña de la base de datos), debe modificar ambos archivos .
Aquí está el flujo de trabajo de desarrollo:
Modifique su entidad JPA (agregue un campo, una relación, etc.) Compile su aplicación (esto funciona con el código Java compilado, ¡así que no olvide compilar!) Ejecute mvn liquibase: diff (o mvn compile liquibase: diff para compilar antes) Se crea un nuevo "registro de cambios" en su directorio src / main / resources / config / liquibase / changelog Revise este registro de cambios y agréguelo a su archivo src / main / resources / config / liquibase / master.xml, para que se aplica la próxima vez que ejecuta su aplicación Si usa Gradle en lugar de Maven, puede usar el mismo flujo de trabajo ejecutando ./gradlew liquibaseDiffChangelog, y cambiar la configuración de la base de datos en liquibase.gradle si es necesario.
Entonces solo necesita cambiar sus entidades JPA (eliminar, agregar, etc.), ejecutar mvn compile liquibase: diff , y poner los cambios en master.xml.
Lo que he hecho para modificar la entidad jhipster como una relación para agregar nuevas tablas fue:
- (guarde el proyecto antes de que ocurra algo: p) yo jhipster: entidad TableToEdit y edite lo que quiera. A quién editarTableOrAdd
- A continuación, agregue las nuevas tablas. (Opcional)
- Entonces tuve que hacer cambios o eliminar todas las tablas de la Base de Datos, para generar los nuevos campos y relaciones en la parte SQL automáticamente.
Nota: Si después de estos pasos, tiene algún error, serverError o algo que regenere de entidad regenerate Entity . Por supuesto, si desea conservar todos sus datos, esta no es una buena alternativa.
También puede modificar entidades existentes de forma interactiva, por ejemplo, utilizando yo jhipster:entity Foo
para la entidad Foo
.
De esta manera, puede regenerar todas las entidades y cuadros de diálogo.
Si está utilizando un RDBMS y liquibase, debe escribir los archivos de registro de cambios y agregarlos al master.xml. Lo que ayuda aquí es usar mvn liquibase:diff
o gradlew liquibaseDiff
, que puede ejecutar contra su base de datos existente. Sin embargo, recomendaría escribir los archivos changelog manualmente.
Tengo una solución para jhipster 3.4.2, es el resultado de mí en 1 día, espero que sea útil para ti :)
- Run
yo jhipster:entity entityName
- Modificar entidades (agregar, eliminar, ...), al final, jhipster dará una pregunta para anular el archivo, * NOTA IMPORTANTE: seleccione NO para
changelog .xml
file ynavbar.html
file. - Volver a proyectar y ejecutar
mvn compile liquibase:diff
- Ejecute su aplicación
- HECHO