在将我的jhipster生成的应用程序上传到heroku时遇到一些问题,经过一些研究后我发现我在开发过程中做的一些实体修改没有在生产数据库中完成,因此缺少一些字段。
我还在User实体中添加了一个字段,所以现在我甚至无法在表中缺少该字段时注册/登录。
想知道数据库生成在prod模式下是如何工作的,所以我可以使它工作。它可能与liquibase changelog中的smth缺失有关吗?(我对liquibase很新,所以我有点迷失了。)
更新:
问题似乎是“jhi_user”表中缺少的列。我需要创建一个数据库更改日志来添加该缺少的列,所以我跑了 “mvn liquibase:generateChangeLog”
我在控制台中看到了正确的更改日志,但在我的changelogs文件夹下没有创建更改日志。我做错了什么?
答案 0 :(得分:1)
首先,检查目录中是否存在与您的实体对应的迁移文件:
src/main/resources/config/liquibase/changelog/
然后通过运行确认Heroku应用程序具有数据库:
heroku addons
然后运行Maven重新打包你的WAR文件:
mvn install -Pprod -DskipTests
然后再次部署:
heroku deploy:jar target/*.war
JHipster将在启动时运行迁移。如果您使用的是Postgresql,则可以通过运行heroku pg:psql
并使用\d
等命令来检查表格。
答案 1 :(得分:0)
问题是当我从yo jhipster:entity命令创建实体时,没有生成更改日志。
解决了这个问题:
mvn liquibase:diff
加上一些手动更改集并将它们添加到master.xml。
之后:
mvn liquibase:dropAll
mvn liquibase:update
然后部署到heroku并创建了每个表。