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

Java 在Jhipster中如何创建生产数据库?,java,spring,heroku,liquibase,jhipster,Java,Spring,Heroku,Liquibase,Jhipster,在将jhipster生成的应用程序上载到heroku时出现了一些问题,经过一些研究后,我发现我在开发时所做的一些实体修改没有在生产数据库中完成,因此缺少一些字段 我还向用户实体添加了一个字段,所以现在我甚至无法注册/登录,因为表中缺少该字段 我想知道数据库生成在prod模式下的具体工作方式,以便我能够使其工作。这可能与liquibase变更日志中缺少smth有关吗?(我对liquibase完全陌生,所以我有点迷路了) 更新: 问题似乎是“jhi_用户”表中缺少一列。我需要创建一个数据库chang

在将jhipster生成的应用程序上载到heroku时出现了一些问题,经过一些研究后,我发现我在开发时所做的一些实体修改没有在生产数据库中完成,因此缺少一些字段

我还向用户实体添加了一个字段,所以现在我甚至无法注册/登录,因为表中缺少该字段

我想知道数据库生成在prod模式下的具体工作方式,以便我能够使其工作。这可能与liquibase变更日志中缺少smth有关吗?(我对liquibase完全陌生,所以我有点迷路了)

更新:

问题似乎是“jhi_用户”表中缺少一列。我需要创建一个数据库changelog来添加缺少的列,所以我运行了
“mvn liquibase:generateChangeLog”


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

首先,检查目录中是否存在与您的实体对应的迁移文件:

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

的命令来检查表。首先,检查目录中是否存在与您的实体对应的迁移文件:

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

的命令来检查表。问题是,当我从yo jhipster:entity命令创建实体时,没有生成变更日志

通过以下方式解决了问题:

mvn liquibase:diff
再加上一些手工完成的变更集,并将它们添加到master.xml

之后:

mvn liquibase:dropAll
mvn liquibase:update

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

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

通过以下方式解决了问题:

mvn liquibase:diff
再加上一些手工完成的变更集,并将它们添加到master.xml

之后:

mvn liquibase:dropAll
mvn liquibase:update

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

您是否运行了
mvn安装-Pprod
heroku部署:jar target/*。war
自从运行
jhipster:heroku
?是的,还尝试将jhi_用户表缺少的字段添加到initial_schema.xml中,但在生产中仍然缺少该字段,我不确定这是否是添加额外列的正确位置。您是否运行了
mvn install-Pprod
heroku deploy:jar target/*.war
,自从运行了
jhipster:heroku
?是的,还尝试将jhi_user表缺少的字段添加到initial_schema.xml中,但在生产中仍然缺少该字段,我不确定这是否是添加额外专栏的合适位置。首先,非常感谢。这个问题似乎与用户实体直接相关,因为我在生成器外部对实体进行了一些更改,所以我在developments中手动添加到数据库的新字段不在changelogs中。我试图添加它,但没有成功(问题已编辑),您是否编辑了现有的变更日志?你需要创建一个新的,因为它已经运行了。太好了,所以我需要创建一个带有smth的变更日志,比如(注释更新)“mvn liquibase:generateChangeLog”没有像你想的那样工作,请阅读。同样在中,我们给出了一些关于如何进化实体和与Liquibase同步的提示。我一直在四处寻找,但找不到解决方案,完成了mvnw Liquibase:diff to chek changes,将变更日志添加到master.xml中,甚至创建了我自己的变更日志,用于添加生产中缺少的Column,但仍然存在一些错误。首先,非常感谢。这个问题似乎与用户实体直接相关,因为我在生成器外部对实体进行了一些更改,所以我在developments中手动添加到数据库的新字段不在changelogs中。我试图添加它,但没有成功(问题已编辑),您是否编辑了现有的变更日志?你需要创建一个新的,因为它已经运行了。太好了,所以我需要创建一个带有smth的变更日志,比如(注释更新)“mvn liquibase:generateChangeLog”没有像你想的那样工作,请阅读。此外,我们还提供了一些关于如何发展实体和与Liquibase同步的提示。我一直在四处寻找,但找不到解决方案,完成了mvnw Liquibase:diff to chek更改,将该更改日志添加到master.xml,甚至创建了我自己的更改日志,以添加我的用户实体在生产中丢失的列,但仍然存在一些错误。