当前位置: 首页 > 知识库问答 >
问题:

Jhipster实体子生成器:如何创建liquibase DELTA变更?

毋修为
2023-03-14

jhipster——版本

5.3.4

我正在评估JHipster并测试它如何处理数据库DDL修改。在我的测试中,我创建了一个Jhipster项目,然后运行Jhipster导入jdl模型。jh。JHipster生成了所有的集成测试,一切看起来都很好。所以我开始投入生产。但后来我意识到我在一组实体之间定义了错误的关系。原始的模型。当我打算声明一个多对一关系时,jh文件声明了一个一对多关系。

为了修复这种关系,我尝试了三种方法。首先,我试图纠正model.jh文件中的关系,并重新运行jhipster port-jdl。这做了我需要的正确更改,除了它覆盖了liquibase更改日志文件,而不是创建一个只包含增量的新更改日志条目。

所以我恢复了那个更改,并尝试使用实体子生成器。它也修改了原始的变更日志文件,而不是创建增量变更日志文件。所以我恢复了这些改变,尝试另一种方法。

我手动更改了实体,然后使用mvn liquibase:diff。这种方法最接近我的需要。它确实创建了一个新的变更日志,而不是更新原始文件。但是,新的changelog试图改变的不仅仅是与关系相关联的列。它试图更改表中几个不相关列的数据类型。它删除了现有栏目中的备注/评论。简言之,它基本上是从头开始重新定义整个表,进行了比我试图进行的小更改所需的更多的更改。我最终也回到了这种方法上。

所以,我的问题是,对于那些有经验的JHipster和liquibase用户来说,在他们已经在生产中使用之后,如何修改实体?您是手动创建变更日志,还是有一种自动生成变更日志的好方法?

共有1个答案

司国源
2023-03-14
  • 在JDL中进行更改并导入它

JHipster的“使用数据库”文档中记录了步骤3-5。请注意,这些步骤仅适用于在dev中使用本地数据库的情况,它目前不适用于H2。

您可以在Github的这个分支中看到这些步骤作为提交。

 类似资料:
  • 如何让“教授”延伸到“人”?我应该直接在代码上做吗?还是我错过了什么?

  • 问题内容: 使用Jhipster和Postgresql,我创建了一个实体“ Customer”。当我使用Angular UI将数据添加到该实体或将其添加到API时,可以使用UI上的搜索表单来搜索此数据。 但是,当我直接在数据库中插入数据时,即使在应用程序重新启动后也无法搜索数据。搜索仍然(仅)对通过UI添加的数据有效。 我是Elasticsearch的新手,不知道在后端插入数据并将其提供给Elas

  • 我在控制台中看到正确的changelog弹出,但在我的changelogs文件夹下没有创建changelog。我做错了什么?

  • 我使用JHipster生成了一个微服务应用程序,然后我使用JHipster“导入jdl”命令生成了许多实体。 但最近我注意到,在运行import jdl命令后,新创建的变更日志文件并没有反映在master上。未使用新创建的实体更新xml Liquibase文件和CacheConfiguration类。 我认为发生这种行为是因为JHipster跳过了覆盖的文件。但在生成之前,它应该询问我是否要强制或

  • 我正在尝试为实体创建一个域模型(聚合),该实体包含子实体,并且可以有父实体。我们有实体包。我们可以把包裹分成更小的包裹(儿童)。每个分开的包都有一个父包。域的哪个部分应该包含域逻辑:聚合还是域服务?e、 g.聚合包有一个方法 分包还是原包?解决这个问题的正确方法是什么? 我希望我的域模型被ddd(应用程序和基础设施)的其他部分保持干净和幂等

  • 我为我的系统创建了一些报告,该报告由许多表组成。为此,我创建了一个带有@Entity注释的域类,并实现了一个JpaRepository存储库,我将本机查询与@query一起使用,如下所示。 我的问题是,对于每个域类,hibernate都在创建一个表,如何停止它? 我的域类: 我的存储库: