【问题标题】:mysql database is not being seeded by spring bootmysql数据库没有被spring boot播种
【发布时间】:2020-05-11 20:27:57
【问题描述】:

根据本教程: https://www.baeldung.com/spring-boot-data-sql-and-schema-sql Spring Boot 应该寻找一个名为 data.sql 的文件并执行它,这将为数据库提供种子。我用一堆 sql insert 语句创建了该文件,但数据库表仍然为空。 Spring boot 成功地从模型创建了表,因此至少可以工作。

我的文件位于主包下的 db 子包中。有什么建议吗?

我的 application.properties 有以下内容:

spring.jpa.properties.hibernate.dialect= org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.hibernate.ddl-auto= update

【问题讨论】:

    标签: mysql spring spring-boot


    【解决方案1】:

    为了实现你想要的,你可以在 src/main/resources 文件夹下创建一个 data.sql 文件。

    希望对你有帮助

    【讨论】:

    • 我将 data.sql 移动到 src/main/resources 但新运行后表仍然是空的。我已经用更多细节更新了我的问题。
    • 您还需要将 spring.batch.initialize-schema=always 添加到您的 application.properties 文件中。然后就可以了。
    • 我还要补充一点,如果您希望对模型架构所做的所有更改都得到实施,那么您最好从更新更改为创建。 IE。 spring.jpa.hibernate.ddl-auto= create 如果从 varchar(16) 更改为 varchar(32),例如,更改不会在表中更新!
    • 太棒了。如果你想要更灵活的东西,你可以试试 Flyway。
    • 是的,现在休眠设置为创建而不是更新,它重新创建了我不希望它接触的表。即使将@Immutable 应用于表格!谁能弄清楚所有这些规则!
    猜你喜欢
    • 2017-09-09
    • 1970-01-01
    • 2015-06-20
    • 1970-01-01
    • 2018-04-01
    • 2014-12-27
    • 2021-09-29
    • 2017-09-29
    • 2015-05-11
    相关资源
    最近更新 更多