在 Jhipster 中如何创建生产数据库?

How does production database creation work in Jhipster?

将我的 jhipster 生成的应用程序上传到 heroku 时遇到一些问题,经过一些研究后我发现我在开发时所做的一些实体修改没有在生产数据库中完成,所以一些字段丢失了。

我还向用户实体添加了一个字段,所以现在我什至无法 register/login 而 table 中缺少该字段。

想知道数据库生成在生产模式下的工作原理,以便我可以让它工作。可能与 liquibase 变更日志中缺少的 smth 有关吗?(我对 liquibase 绝对陌生,所以我有点迷路)。

更新:

问题似乎是 "jhi_user" table 中缺少一列。我需要创建一个数据库更新日志来添加缺失的列,所以我 运行 "mvn liquibase:generateChangeLog"

我看到控制台中弹出了正确的变更日志,但我的变更日志文件夹下没有创建变更日志。我做错了什么?

首先检查目录下是否有你的实体对应的迁移文件:

src/main/resources/config/liquibase/changelog/

然后通过 运行ning 确认 Heroku 应用程序有一个数据库:

heroku addons

然后 运行 Maven 重新打包您的 WAR 文件:

mvn install -Pprod -DskipTests

然后再次部署:

heroku deploy:jar target/*.war

JHipster 将在启动时 运行 迁移。如果您使用的是 Postgresql,则可以通过 运行ning heroku pg:psql 并使用 \d

等命令检查表

问题是当我从 jhipster:entity 命令创建实体时没有生成更新日志。

解决了以下问题:

mvn liquibase:diff

加上一些手工完成的变更集并将它们添加到 master.xml。

之后:

mvn liquibase:dropAll
mvn liquibase:update

然后部署到 heroku 并创建每个 table。