如何通过JHipster的import-jdl重生成实体并清理旧实体与数据库?
嘿,我来帮你搞定这两个JHipster相关的问题:
1. 如何用
import-jdl命令重新生成实体 执行这个命令的步骤很简单,只要注意在正确的目录下操作就行:
- 先打开终端,切换到你的JHipster项目根目录
- 根据你的JHipster安装方式,选择对应的命令运行:
- 全局安装JHipster:
jhipster import-jdl your-jdl-file.jh - 使用项目本地的JHipster(更推荐,避免版本不一致问题):
- Maven项目:
./mvnw jhipster:import-jdl -Djhipster.jdlFile=your-jdl-file.jh - Gradle项目:
./gradlew jhipsterImportJdl --args="your-jdl-file.jh" - npm/yarn脚本:
npm run import-jdl your-jdl-file.jh或yarn import-jdl your-jdl-file.jh
- Maven项目:
- 全局安装JHipster:
- 命令执行完成后,JHipster会自动更新实体对应的后端代码(JPA实体、Repository、Controller等)、前端组件(列表页、详情页、表单),还有数据库迁移文件(如果用Liquibase或Flyway)
2. 如何删除旧实体、清空数据库并重建新结构
JHipster默认会保留已存在的实体,想要彻底清理混乱的结构,你可以分两步操作:
第一步:移除未在JDL中定义的旧实体
运行import-jdl时加上--delete-old-entities参数,JHipster会自动删除当前项目中存在但没在你的JDL文件里定义的所有实体及其关联代码:
# 全局JHipster的用法 jhipster import-jdl your-jdl-file.jh --delete-old-entities # npm脚本的用法(需要加额外的破折号传递参数) npm run import-jdl your-jdl-file.jh -- --delete-old-entities # yarn脚本的用法 yarn import-jdl your-jdl-file.jh --delete-old-entities
第二步:清空数据库并重建结构
删除实体代码后,还需要清理数据库里的旧表和数据,根据你的构建工具和迁移工具选择命令:
- Liquibase(JHipster默认):
- Maven项目:
./mvnw liquibase:dropAll - Gradle项目:
./gradlew liquibaseDropAll
- Maven项目:
- Flyway:
- Maven项目:
./mvnw flyway:clean - Gradle项目:
./gradlew flywayClean
- Maven项目:
执行完清空命令后,再重新运行import-jdl(或者直接启动项目),JHipster就会自动生成全新的数据库结构了。
⚠️ 注意:这个操作会彻底删除数据库中的所有数据和表,一定要确认这些数据已经不需要再保留了!
内容的提问来源于stack exchange,提问作者Mike
相关产品推荐
相关产品推荐

