【问题标题】:Can't generate DDL creation script with Spring Boot无法使用 Spring Boot 生成 DDL 创建脚本
【发布时间】:2020-01-20 09:17:36
【问题描述】:

我正在尝试使用 Spring Boot 生成 DDL 创建脚本,并在某处发现此配置应该执行此操作:

spring:
  jpa:
    properties:
      javax:
        persistence:
          schema-generation:
            create-source: metadata
            scripts:
              action: create
              create-target: create.sql

但是,当我编译并启动代码时,什么也没有发生。没有生成新文件。这些是我目前使用的版本:

spring-boot: 1.5.16.RELEASE

spring-boot-starter-data-jpa: 1.5.16.RELEASE

hibernate-jpa-2.1

Hibernate-java8: 5.0.12

【问题讨论】:

  • 嗨@Zed,相同的配置在 Spring Boot v2.1.8.RELEASE 上运行良好,并在 根文件夹 中创建 sql 文件。您是否检查过根文件夹,或者在 1.5.16 中可能会有一些不同的属性名称,就像我们对多部分大小所做的那样
  • 你是手动导入两个Hibernate特定的依赖吗?您可以删除它们并让 Spring Boot 管理 Hibernate 特定版本吗?

标签: spring hibernate spring-boot jpa spring-data-jpa


【解决方案1】:

你是不是缺少数据源配置?

spring:
  datasource:
  ....

您可能会发现更多有用的信息here

【讨论】:

  • 是的,我删除了它,认为它不相关。数据库连接工作没有任何问题。
【解决方案2】:

直到JPA 2.1,您需要使用供应商特定的配置参数来定义persistence.xml 文件中的数据库设置。从版本 2.1 开始,还有一种标准方法可以执行以下操作。您可能需要将spring-boot-starter-data-jpa: 1.5.16.RELEASE 更新为2.1 or later versions

javax.persistence.schema-generation.database.action
javax.persistence.schema-generation.scripts.action //used here
javax.persistence.schema-generation.create-source //used here
javax.persistence.schema-generation.drop-source
javax.persistence.schema-generation.create-database-schemas
javax.persistence.schema-generation.scripts.create-target //used here
javax.persistence.schema-generation.scripts.drop-target
javax.persistence.database-product-name
javax.persistence.database-major-version
javax.persistence.database-minor-version
javax.persistence.schema-generation.create-script-source
javax.persistence.schema-generation.drop-script-source
javax.persistence.schema-generation.connection
javax.persistence.sql-load-script-source

JPA 2.1 Overview

【讨论】:

    猜你喜欢
    • 2019-10-29
    • 2016-08-26
    • 2014-02-02
    • 2021-06-01
    • 2013-10-12
    • 2015-06-20
    • 1970-01-01
    • 2021-12-01
    • 2015-02-03
    相关资源
    最近更新 更多