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

时间:2018-04-02 19:03:42

标签: java hibernate jhipster liquibase

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

config/liquibase/changelog/00000000000000_initial_schema.xml
删除所有更改日志后

changelog/20180402195420_changelog.xml

因为他们被堵塞了,我认为他们造成了错误。

回顾过去,我发现这些文件只是更改日志,可能并不是导致我出现问题的原因。

现在,我只剩下过时的初始架构,当我运行时

mvn liquibase:diff

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

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

我在没有成功的情况下尝试在删除databasechangelog中的行后重新运行。

2 个答案:

答案 0 :(得分:2)

要重新生成您删除的00000000000000_initial_schema.xml文件,您有几个选项

  1. 运行jhipster,它将重新生成项目并重新创建您删除的所有文件。
  2. 在单独的文件夹中生成新项目(复制.yo-rc.json文件以保留配置),然后将生成的00000000000000_initial_schema.xml文件复制到项目中
  3. 复制文件from the sample app(这可能仅适用于H2 / MySQL数据库组合)
  4. 要为您的实体重新生成更改日志,也要重新生成实体。您可以使用jhipster --with-entities

    同时重新生成项目和实体

答案 1 :(得分:1)

终于找到了我的问题的答案!

让我们重新生成。这种方法可以让你重新开始。

警告:会丢失所有数据。

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

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