JHipster : Liquibase/Hibernate 重新生成初始模式

JHipster : Liquibase/Hibernate re-generate initial schema

我目前正在尝试重新生成文件

config/liquibase/changelog/00000000000000_initial_schema.xml

在我删除所有更新日志后

changelog/20180402195420_changelog.xml

因为它们被堵塞了,我认为它们会导致错误。

回想起来,我发现这些文件只是更改日志,可能并不是我遇到问题的真正原因。

现在,我只剩下过时的初始模式,当我 运行

mvn liquibase:diff

我只获取我所做的最新更改的更改日志。


有没有办法重新生成initial_schema.xml,或者至少生成所有更改的完整changelog.xml在 initial_schema 和现在 ?

之间制作

我尝试在删除 databasechangelog 中的行后重新运行,但没有成功。

要重新生成您删除的 00000000000000_initial_schema.xml 文件,您有多种选择

  1. 运行 jhipster 这将重新生成项目并重新创建您删除的所有文件。
  2. 在单独的文件夹中生成一个新项目(复制您的 .yo-rc.json 文件以保留您的配置),然后将生成的 00000000000000_initial_schema.xml 文件复制到您的项目中
  3. 复制文件 from the sample app(这可能只适用于 H2/MySQL 数据库组合)

要为您的实体重新生成变更日志,请同时重新生成实体。您可以使用 jhipster --with-entities

同时重新生成项目和实体

终于找到问题的答案了!

让我们重新生成。此方法将让您重新开始。

警告: 将丢失所有数据。

  1. 删除除初始 xml
  2. 之外的所有 liquibase 更新日志 (resources/liquibase/changelog)
  3. 删除数据库
  4. 重新创建数据库
  5. 运行 程序,允许 liquibase 应用初始变更日志
  6. 关闭程序
  7. 运行 'mvn liquibase:diff'
  8. 将生成的变更日志添加到 master.xml
  9. 重新运行程序

您应该会看到您的数据库。

编辑:如果您重命名了 tables,将不会加载 .csv 文件(默认用户、默认权限等...) 要修复它,请在执行第 3 步之前更改初始 changelog.xml 中的 table 名称。