axi*_*sty 5 java liquibase jhipster jdl
jhipster --version
5.3.4
我正在评估 JHipster 并测试它如何处理数据库 DDL 修改。在我的测试中,我创建了一个 Jhipster 项目,然后运行jhipster import-jdl model.jh. JHipster 生成了所有的集成测试,一切看起来都很好。所以我部署到生产。但后来我意识到我定义了一组实体之间的错误关系。当我打算声明关系时,原始model.jh文件one-to-many声明了many-to-one关系。
为了修复这种关系,我尝试了三种方法。首先,我尝试纠正model.jh文件中的关系并重新运行jhipster import-jdl. 这进行了我需要的正确更改,除了它覆盖了 liquibase 更改日志文件而不是创建仅包含增量的新更改日志条目。
所以我恢复了那个变化,并尝试使用实体子生成器。它也修改了原始变更日志文件,而不是创建增量变更日志文件。所以我恢复了这些更改以尝试另一种方法。
我手动对实体进行了更改,然后使用了mvn liquibase:diff. 这种方法最接近我所需要的。它确实创建了一个新的变更日志,而不是更新原始文件。但是,新的变更日志试图改变的不仅仅是与关系相关的列。它试图更改表中几个不相关列的数据类型。它从现有列中删除了评论/评论。简而言之,它基本上是从头开始重新定义整个表格,其中的更改比我尝试进行的小更改所需的更改要多。我最终也恢复了这种方法。
所以,我的问题是,对于那些有经验的 JHipster 和 liquibase 用户,在生产中使用实体后,如何修改它们?您是手动创建更改日志,还是有自动生成它们的好方法?
master.xml)引起的对数据库更改日志文件的更改./mvnw compile liquibase:diff./gradlew compileJava liquibaseDiffChangelog -PrunList=diffLogmaster.xml步骤 3-5 记录在 JHipster 的“使用数据库”文档中。请注意,这些步骤仅适用于在 dev 中使用本地数据库的情况,它目前不适用于 H2。
您可以在 Github 上的此分支中将这些步骤视为提交。