Cloud foundry Cloudfoundry如何让两个应用共享一个数据库服务

Cloud foundry Cloudfoundry如何让两个应用共享一个数据库服务,cloud-foundry,Cloud Foundry,我为两个应用绑定了postgresql服务。它们都更新了数据库。问题是,我使用其中一个应用程序通过SpringJDBC名称空间创建表(数据库模式)。但由于另一个设置为使用不同的用户名和密码。它无法访问由另一个创建的表。无论如何,cloudfoundry要提供解决问题的灵活性?对于Spring应用程序,这可以通过利用“自动重新配置”来实现。CF在特定条件下检测类javax.sql.DataSource的bean,然后用已设置的值替换诸如username或password之类的属性。您可以在此处找到

我为两个应用绑定了postgresql服务。它们都更新了数据库。问题是,我使用其中一个应用程序通过SpringJDBC名称空间创建表(数据库模式)。但由于另一个设置为使用不同的用户名和密码。它无法访问由另一个创建的表。无论如何,cloudfoundry要提供解决问题的灵活性?

对于Spring应用程序,这可以通过利用“自动重新配置”来实现。CF在特定条件下检测类javax.sql.DataSource的bean,然后用已设置的值替换诸如username或password之类的属性。您可以在此处找到非常详细的说明:


因此,对于您的两个应用程序,您可以将数据源连接配置为相同的格式。只要将相同的postgresql服务绑定到这两个应用程序,尽管CF会向这两个应用程序注入不同的值,但它们可以访问相同的表而无需任何显式配置。

对于Spring应用程序,这可以通过利用“自动重新配置”来实现。CF在特定条件下检测类javax.sql.DataSource的bean,然后用已设置的值替换诸如username或password之类的属性。您可以在此处找到非常详细的说明:


因此,对于您的两个应用程序,您可以将数据源连接配置为相同的格式。只要您将相同的postgresql服务绑定到这两个应用程序,尽管CF将向这两个应用程序注入不同的值,但它们可以访问相同的表,而无需任何显式配置。

这两个绑定应使用相同的用户和密码(顺便说一句,您不应该在意)。你能分享一下你的
配置吗,只是为了确保你没有做疯狂的事情?我很确定每个绑定的用户名和密码都是不同的。我打印了VCAP服务环境变量,它们使用不同的用户名和密码。嗯,你说的用户名/密码不同是对的。但数据库名称是相同的,因此我的理解是这应该是可行的(目的确实是让应用程序使用共享服务进行协作)。如果你不能做到这一点,我建议打开一个问题。这两个绑定应该使用相同的用户和密码(顺便说一句,你不应该在意)。你能分享一下你的
配置吗,只是为了确保你没有做疯狂的事情?我很确定每个绑定的用户名和密码都是不同的。我打印了VCAP服务环境变量,它们使用不同的用户名和密码。嗯,你说的用户名/密码不同是对的。但数据库名称是相同的,因此我的理解是这应该是可行的(目的确实是让应用程序使用共享服务进行协作)。如果你不能做到这一点,我建议打开一个问题。