【发布时间】:2020-09-29 15:36:05
【问题描述】:
我有这个使用 postgresql 数据库的 springboot 应用程序。我的 application-dev.properties 文件如下:
spring.datasource.platform=postgres
spring.datasource.url=jdbc:postgresql://localhost:5432/postgres
spring.datasource.username=postgres
spring.datasource.password=root
spring.datasource.data=classpath:/sql/dev-data.sql
spring.jpa.properties.hibernate.default_schema=myschema
spring.jpa.show-sql=true
spring.jpa.database=POSTGRESQL
数据库安装在我的开发机器上,并且已经初始化。 dev-data.sql 在src/main/resources/sql 中,现在只删除特定表上的所有内容(我们称之为myschema.example_table)并插入一些注册表。 (这是为了检查功能是否有效,而不是实际使用):
delete from myschema.example_table where id > 0;
insert into myschema.example_table (id, val1, val2) values (1, "Hello", "Petecander");
insert into myschema.example_table (id, val1, val2) values (2, "Goodbye", "Gromenauer");
我的问题是……什么都没有发生。就好像根本没有任何与 dev-data.sql 文件相关的东西。所以,我在这里完全不知所措。我已经浏览了一段时间,并阅读了许多可以在 application.properties 文件上启用的不同开关,但没有。有什么想法吗?
编辑:只是为了提供一些我在下面被问到的信息:应用程序加载正常,可以对数据库执行一些基本的 CRUD 内容(目前只需阅读内容),所以 application-dev .properties 文件可以看到正在正确加载。
【问题讨论】:
-
为什么将其命名为
dev-data.sql?为什么不data.sql? -
我不认为
spring.datasource.platform=postgres是必要的,因为spring 会尽可能从URL 中确定数据库。大概如果你在 localhost 上运行它,你已经从 docker 容器映射了端口?5432是正确的端口吗?您已将 DB 指定为postgres,但将模式指定为myschema用于休眠 - 这可能是个问题吗?大概当您是 spring boot 应用程序时,它会将配置文件设置为dev以便application-dev.properties是正在使用的属性源?我可以想办法进行测试,但在您制定调试计划之前需要回答一些问题 -
Answering @RobEvans:应用程序运行基本的 CRUD 操作“很好”,并且数据库不在 docker 容器中,而是安装在我的开发机器中(我们处于开发的早期阶段,想法正在与docker一起使用,但还没有)。是的,正在加载 application-dev.properties 文件(它包含到数据库的所有连接信息,所以要么就是魔法)。
标签: java spring postgresql spring-boot jpa