sql-server - Gcp appengine 应用未正确连接到 Cloud sql 数据库
问题描述
我的 spring boot/kotlin 应用程序和数据库之间存在连接问题。我尝试遵循谷歌提供的指南和一些 Stackoverflow 帖子。我向用户添加了客户端/管理员 sql 权限。在此链接上遵循谷歌指南https://github.com/spring-cloud/spring-cloud-gcp/tree/master/spring-cloud-gcp-samples/spring-cloud-gcp-sql-postgres-sample并重新创建一切照原样。我遇到了问题:部署的应用程序没有连接到实际的数据库,而是使用资源中的 data.sql 和 schema.sql 对象,它也没有对实际的数据库进行更改,但是在其他地方,例如我正在使用这个命令获取数据:
@GetMapping("/getdata")
fun getTuples(): List<String>? {
return jdbcTemplate!!.queryForList("SELECT * FROM users").stream()
.map { m: Map<String?, Any?> -> m.values.toString() }
.collect(Collectors.toList())
}
我得到的结果是示例中提供的结果:
0 "[luisao@example.com, Anderson, Silva]"
1 "[jonas@example.com, Jonas, Goncalves]"
2 "[fejsa@example.com, Ljubomir, Fejsa]"
Cloud 数据库中的实际用户表如下所示:
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 中看到的那些。所以问题是哪里可能出现问题?在本文档中https://cloud.spring.io/spring-cloud-gcp/multi/multi__spring_jdbc.html说这种依赖关系应该自动完成大部分工作,但不知何故出了问题。难道是spring boot / hikari在appengine中创建了虚拟环境,它阻止了数据库连接,而你连接并只看到来自data.sql文件的Mock数据?还是问题出在配置上?我的 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]
解决方案
推荐阅读
- c - 为什么这个说法是正确的?&f 是浮点型**
- php - 关于 Session 数据和 CodeIgniter 3 的问题
- android - 从 WebView 单击启动 Activity 会导致“网页不可用”
- asp.net-core - 针对没有控制器的特定 url 或路由的 Mvc 过滤器
- javascript - 逐项滚动轮播
- r - R - 数据框中的匹配列
- android-studio - Flutter:AUDIO_OUTPUT_FLAG_FAST 被客户端拒绝
- php - 用户必须实现 CanResetPassword 接口。密码重置 Laravel 5.4
- python - 从 Google BigQuery 中过滤或替换非英文字符
- node.js - 无法从 Github 存储库将 ASP.NET Core / Angular 应用程序部署到 Azure