Sql server Gcp appengine应用程序未正确连接到云sql数据库
我的spring boot/kotlin应用程序和数据库之间存在连接问题。我试着遵循谷歌提供的指南和一些Stackoverflow帖子。我向用户添加了客户端/管理员sql权限。 在这个链接上遵循谷歌指南并按原样重新创建所有内容之后。我遇到了一个问题:部署的应用程序并没有连接到实际的数据库,而是使用了资源中的data.sql和schema.sql对象,也并没有对实际的数据库进行更改,但在其他地方,例如,我使用以下命令来获取数据:Sql server Gcp appengine应用程序未正确连接到云sql数据库,sql-server,spring-boot,kotlin,google-cloud-platform,Sql Server,Spring Boot,Kotlin,Google Cloud Platform,我的spring boot/kotlin应用程序和数据库之间存在连接问题。我试着遵循谷歌提供的指南和一些Stackoverflow帖子。我向用户添加了客户端/管理员sql权限。 在这个链接上遵循谷歌指南并按原样重新创建所有内容之后。我遇到了一个问题:部署的应用程序并没有连接到实际的数据库,而是使用了资源中的data.sql和schema.sql对象,也并没有对实际的数据库进行更改,但在其他地方,例如,我使用以下命令来获取数据: @GetMapping("/getdata")
@GetMapping("/getdata")
fun getTuples(): List<String>? {
return jdbcTemplate!!.queryForList("SELECT * FROM users").stream()
.map { m: Map<String?, Any?> -> m.values.toString() }
.collect(Collectors.toList())
}
云数据库中的实际用户表如下所示:
postgres=> select * from users;
email | first_name | last_name
--------------------+------------+-----------
luisao@example.com | Anderson | Silva
jonas@example.com | Jonas | Goncalves
fejsa@example.com | Ljubomir | Fejsa
kkskldk | sjndjfdf | skdskd
(4 rows)
前3行是相同的,只是因为我手动添加了它们。应用程序在数据库中看不到DDL/DML更改,只有我在data.sql或schema.sql中看到的更改。所以问题是哪里会有问题?
在本文档中,该依赖项应该自动完成大部分工作,但不知何故出现了一些问题。
可能是spring boot/hikari在appengine中创建了虚拟环境,阻止了数据库连接,而您只连接并查看data.sql文件中的模拟数据?或者问题在于配置?
My application.properties文件:
server.error.include-message=always
spring.cloud.gcp.sql.database-name=[database name]
spring.cloud.gcp.sql.instance-connection-name=[Instance name]
spring.datasource.continue-on-error=true
spring.datasource.initialization-mode=always
spring.datasource.username=postgres
spring.datasource.password=[password]
spring.cloud.gcp.project-id=[project id]
您是否在postgre中提交了数据?是的,我在数据库中提交了数据,或者您也可以使用appengine激活提交?它肯定有相同的数据。在AppEngine上,这取决于您的配置和代码(尤其是Spring注释)。在同一个数据库中,您在本地是否有相同的行为?@guillaumeblaquiere嗯,我编写的代码非常类似于示例中的代码。所以这并没有什么不同,我是否应该分享一些其他东西,让情况变得更清楚?从intelej和appengine启动应用程序提供了相同的输出。很好,如果本地和appengine上的输出相同,则状态良好:问题不是来自应用程序引擎,而是来自代码。
server.error.include-message=always
spring.cloud.gcp.sql.database-name=[database name]
spring.cloud.gcp.sql.instance-connection-name=[Instance name]
spring.datasource.continue-on-error=true
spring.datasource.initialization-mode=always
spring.datasource.username=postgres
spring.datasource.password=[password]
spring.cloud.gcp.project-id=[project id]