mysql数据库没有被spring boot播种
Posted
技术标签:
【中文标题】mysql数据库没有被spring boot播种【英文标题】:mysql database is not being seeded by 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
【问题讨论】:
【参考方案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 应用于表格!谁能弄清楚所有这些规则!以上是关于mysql数据库没有被spring boot播种的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Spring-Boot 播种 Spring-Security
Spring Boot and Batch:根据 application.properties 值停止批处理
docker compose:spring boot连接到mysql数据库被拒绝