Jhipster 5.7.2 如何从 H2 迁移到 mysql 保留我的修改

Posted

技术标签:

【中文标题】Jhipster 5.7.2 如何从 H2 迁移到 mysql 保留我的修改【英文标题】:Jhipster 5.7.2 How to Migrate to mysql from H2 keeping my modifications 【发布时间】:2019-02-15 15:43:44 【问题描述】:

我通过选择 h2 数据库选项创建了一个 jhipster 项目。我对我的项目进行了很多更改,我想切换到一个 mysql 数据库来保存我的数据。

所以我将"devDatabaseType": "h2Disk",从文件yo-rc.json 更改为"devDatabaseType": "mysql"。但是,当我执行命令“jhipster upgrade --force”或“jhipster”时,我会丢失对 angular 或我的 java 项目所做的所有修改。

如何在不丢失更改的情况下迁移数据库

(更新)编辑后:

src/main/resources/config/application-dev.yml 
src/test/resources/config/application.yml
Delete **DatabaseConfiguration.java**  
Edit **WebConfigurer.java**, **SecurityConfiguration.java 
navbar.component.html** and **pom.xml**  to remove references to H2

我收到此错误:stack trace 包含该错误的完整项目可在此处获得:project

【问题讨论】:

你不应该将 'ddl-auto: none' 更改为 'ddl-auto: create-drop',创建数据库而不是 Hibernate 是 Liquibase 的工作。您还在 DatabaseConfiguration.java 和 LiquibaseConfiguration.java 中复制了 Liquibase 配置。您应该在 application-dev.yml 中禁用缓存 【参考方案1】:

无需运行jhipster upgrade 进行如此简单的更改。

编辑您的src/main/resources/config/application-dev.yml 以使用mysql,从application-prod.yml 复制数据源属性,但不要将缓存属性设置为true。 src/test/resources/config/application.yml 中的单元测试也是如此 空 DatabaseConfiguration.java,但保留 @Enable* 类注释的类。 编辑WebConfigurer.javaSecurityConfiguration.javanavbar.component.html以删除对H2控制台的引用 编辑 pom.xml*.gradle 以删除对 h2 的依赖

【讨论】:

谢谢@gaël,这样做后我得到这个错误:connection com.mysql.jdbc.JDBC4Connection@1e807f5b marked as broken because of SQLSTATE(08003), ErrorCode(0) com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed. at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 这是我所做的更改:git 请编辑您的问题,而不是在 cmets 中添加太多文本,这样会更具可读性。同时添加完整的堆栈跟踪并提供更多详细信息

以上是关于Jhipster 5.7.2 如何从 H2 迁移到 mysql 保留我的修改的主要内容,如果未能解决你的问题,请参考以下文章

如何制作一个嵌入 H2 的演示 JHipster 用于“生产”

如何将复杂项目从 Angular 1.5 迁移到 2?

调试 JHipster 应用程序抛出:java.lang.ClassNotFoundException: org.h2.server.web.WebServlet

Saiku数据库迁移H2迁移到Mysql(二十二)

如何将上下文文件从 Wildfly 添加到 JHipster

将 WSO2API 管理器从 H2 迁移到 Mysql