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.java
、SecurityConfiguration.java
和navbar.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 用于“生产”
调试 JHipster 应用程序抛出:java.lang.ClassNotFoundException: org.h2.server.web.WebServlet