gpt4 book ai didi

spring - 无法在 Spring Boot 启动时执行 data.sql 和 schema.sql

转载 作者:行者123 更新时间:2023-12-05 02:14:27 26 4
gpt4 key购买 nike


我正在尝试针对在容器中运行的 MySQL 数据库为 Spring Boot 应用程序执行一些数据库初始化。在身份验证过程中,我收到错误消息“未找到表”。我检查了数据库,确实没有创建任何表。数据库属性中是否缺少某些内容?

spring.datasource.url = jdbc:mysql://172.17.0.2:3306/schema
spring.datasource.username = user
spring.datasource.password = password
spring.datasource.testWhileIdle = true
spring.datasource.validationQuery = SELECT 1
spring.jpa.show-sql = true
spring.jpa.hibernate.ddl-auto = create-drop
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
spring.data.rest.basePath=/
spring.datasource.data = classpath:/data.sql
spring.datasource.schema = classpath:/schema.sql

总而言之,只要我从 mysql 命令行创建 DDL,JDBC 设置就可以正常工作。所以它只是在启动时不执行 data.sql 和 schema.sql 。我需要 mysql 的一些额外属性吗?

最佳答案

您可以使用以下属性更新 application.properties。

应用程序.properties:

spring.jpa.hibernate.ddl-auto=none
spring.jpa.generate-ddl=false
spring.datasource.initialization-mode=always

spring.jpa.generate-ddl 默认值为 false。如果将 spring.jpa.generate-ddl=truespring.jpa.hibernate.ddl-auto 设置为任何值 validate,< strong>更新、创建创建-删除。 Spring Boot 生成模式脚本并根据应用程序中可用的实体创建表。

现在您应该在资源文件夹下创建schema.sqldata.sql 文件并设置属性spring.datasource.initialization-mode=always 在 application.properties 中。

您还可以基于平台运行脚本。假设您要为 hsqldb 数据库运行脚本,然后在 application.properties 文件中设置 spring.datasource.platform=hsqldb 并创建脚本文件 schema-hsqldb .sqldata-hsqldb.sql 在资源文件夹下。您可以找到有关 how to load schema.sql and data.sql on startup with spring boot 的更多详细信息.

关于spring - 无法在 Spring Boot 启动时执行 data.sql 和 schema.sql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53522731/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com