我有两个 sql 数据源已经在本地工作,但我想将它部署到两个谷歌云应用引擎(我现在正在使用一个)。我需要更改我的应用程序属性来定义第二个谷歌实例/数据库吗?
我已经在我的 pom 中为名为 sql.instance.second
和 sql.database.second
的连接设置了链接。我不知道如何为第二个应用引擎定义 spring.cloud.gcp.sql...
。我的另一个选择是根本不在本地运行它,而是在定义数据源时定义一个云实例,然后为每个实例定义一个驱动程序,但我也不太确定该怎么做。
spring.cloud.gcp.sql.instance-connection-name=@sql.instance.first@
spring.cloud.gcp.sql.database-name=@sql.database.first@
primary.datasource.jdbc-url = @mysql.host.first@
primary.datasource.username = @mysql.user.first@
primary.datasource.password = @mysql.pass.first@
secondary.datasource.jdbc-url = @mysql.host.second@
secondary.datasource.username = @mysql.user.second@
secondary.datasource.password = @mysql.pass.second@
最佳答案
我能够通过首先摆脱这种依赖来让它工作
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-gcp-starter-sql-mysql</artifactId>
</dependency>
然后将我的 application.properties
更改为此
primary.datasource.driverClassName=com.mysql.jdbc.GoogleDriver
primary.datasource.jdbc-url = @mysql.host.first@
primary.datasource.username = @mysql.user.first@
primary.datasource.password = @mysql.pass.first@
secondary.datasource.driverClassName=com.mysql.jdbc.GoogleDriver
secondary.datasource.jdbc-url = @mysql.host.second@
secondary.datasource.username = @mysql.user.second@
secondary.datasource.password = @mysql.pass.second@
并删除
spring.cloud.gcp.sql.instance-connection-name=@sql.instance.first@
spring.cloud.gcp.sql.database-name=@sql.database.first@
将我的 pom.xml 中 @mysql.host.first@
的 url 更改为
<mysql.host.first>jdbc:google:mysql:...</mysql.host.first>
关于java - 如何使用 spring 添加多个谷歌云数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56398650/