【问题标题】:Jhipster 5.7.2 How to Migrate to mysql from H2 keeping my modificationsJhipster 5.7.2 如何从 H2 迁移到 mysql 保留我的修改
【发布时间】: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 中禁用缓存

标签: mysql jhipster h2


【解决方案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 中添加太多文本,这样会更具可读性。同时添加完整的堆栈跟踪并提供更多详细信息
猜你喜欢
  • 1970-01-01
  • 2019-12-22
  • 2022-12-12
  • 1970-01-01
  • 2023-02-20
  • 1970-01-01
  • 2021-05-01
  • 2019-11-11
  • 2019-05-27
相关资源
最近更新 更多