使用JDL修改JHipster实体的正确过程

使用JDL修改JHipster实体的正确过程,jhipster,liquibase,jdl,Jhipster,Liquibase,Jdl,我正在试用JHipster(版本6.4.1),它使用的是一个基于整块石和磁盘的H2数据库。我已经在JDL中创建了一些实体,并使基本CRUD网页正常工作。现在我对这个过程感到满意了,我想添加字段并重命名其他字段。我想我可以简单地更新JDL,重新导入JDL,启动应用程序,然后查看更改的结果。我看到的是来自Liquibase的ValidationFailedException,应用程序由于数据库问题而抛出HTTP 500错误 我已经到处寻找关于处理这个看似常见的开发场景的正确过程的指导。我寻找指导的大

我正在试用JHipster(版本6.4.1),它使用的是一个基于整块石和磁盘的H2数据库。我已经在JDL中创建了一些实体,并使基本CRUD网页正常工作。现在我对这个过程感到满意了,我想添加字段并重命名其他字段。我想我可以简单地更新JDL,重新导入JDL,启动应用程序,然后查看更改的结果。我看到的是来自Liquibase的
ValidationFailedException
,应用程序由于数据库问题而抛出HTTP 500错误

我已经到处寻找关于处理这个看似常见的开发场景的正确过程的指导。我寻找指导的大多数地方(例如)都讨论将JDL作为一次性操作导入,而没有讨论如何增量更改和导入JDL

我已经尝试了很多建议,比如不要覆盖变更日志,做一个
liquibase:diff
,并将其添加到
master.xml
。这仍然会导致验证失败异常。在
master.xml
中,我看到了注释
,这让我相信JHipster应该承担重任,但我只是错过了一步

我决不是一个杰普斯特或液化专家,但我想学习。如何执行简单的实体更新而不产生巨大的麻烦

[更新更详细信息] 在重新导入更新的JDL之后,我通过使用
rm-rf target/h2db/DB
清除数据库,成功地消除了数据库验证错误

我对自己的改变很满意,觉得有必要做出承诺。我看到的是

  • master.xml
    保持不变
  • 第一次JDL导入的changelog已经修改,以包含我所做的更新
如果我知道liquibase是如何工作的,我早就预料到了

  • 不会触及任何现有变更日志
  • 将创建一个全新的changelog文件,其中只包含我在这一轮中所做的JDL更改
  • master.xml
    更改的唯一原因是它将包含一个额外的变更日志条目,指向在项目2中创建的文件

  • 我是否误解了Liquibase如何表示DB模式的演变?

    您引用的页面似乎有一些更新实体的说明。我看到了:

    更新现有实体

    实体配置保存在 特定的.json文件,位于.jhipster目录中。所以如果你运行 再次使用子生成器,使用现有实体名称,可以更新或 重新生成实体

    为现有实体运行实体子生成器时,将 被问及“是否要更新实体?”?这将 替换此实体的现有文件,所有自定义代码都将 使用以下选项“被覆盖”:

    • 是的,重新生成实体-这只会重新生成实体。 提示:这可以通过在运行时传递--REGENATE标志来强制执行 子生成器
    • 是的,添加更多字段和关系-这将 为您提供问题以添加更多字段和关系
    • 是的,删除字段和关系-这将为您提供要删除的问题 实体中的现有字段和关系
    • 否,退出-这将在不更改任何内容的情况下退出子生成器
    你可能想 出于以下原因更新您的实体:

    • 您希望向现有实体添加/删除字段和关系
    • 您希望将实体代码重置为其原始状态
    • 您已更新JHipster,并希望使用生成实体 新模板
    • 您已经修改了.json配置文件( 格式与生成器提出的问题非常接近,因此 不太复杂),因此您可以拥有实体的新版本
    • 您已经复制/粘贴了.json文件,并且需要一个新的实体 非常接近复制的实体

    您引用的页面似乎有一些更新实体的说明。我看到了:

    更新现有实体

    实体配置保存在 特定的.json文件,位于.jhipster目录中。所以如果你运行 再次使用子生成器,使用现有实体名称,可以更新或 重新生成实体

    为现有实体运行实体子生成器时,将 被问及“是否要更新实体?”?这将 替换此实体的现有文件,所有自定义代码都将 使用以下选项“被覆盖”:

    • 是的,重新生成实体-这只会重新生成实体。 提示:这可以通过在运行时传递--REGENATE标志来强制执行 子生成器
    • 是的,添加更多字段和关系-这将 为您提供问题以添加更多字段和关系
    • 是的,删除字段和关系-这将为您提供要删除的问题 实体中的现有字段和关系
    • 否,退出-这将在不更改任何内容的情况下退出子生成器
    你可能想 出于以下原因更新您的实体:

    • 您希望向现有实体添加/删除字段和关系
    • 您希望将实体代码重置为其原始状态
    • 您已更新JHipster,并希望使用生成实体 新模板
    • 您已经修改了.json配置文件( 格式与生成器提出的问题非常接近,因此 不太复杂),因此您可以拥有实体的新版本
    • 您已经复制/粘贴了.json文件,并且需要一个新的实体 非常接近复制的实体