为单个部署的应用程序Grails多个数据库

时间:2016-03-25 13:49:49

标签: spring hibernate grails database-design multiple-databases

我们有一个用grails 3编写的当前应用程序,我们希望为多个不同的客户端部署它们。每个客户端的应用程序和数据库架构都是相同的,只有数据发生了变化。

我们不希望拥有单个数据库,因为我们需要重写sql查询,代码将更难管理,索引将变得更大等。

我们得出2个结果:

  1. 定义多个数据源。每次注册新客户端时,都应创建一个新数据库,并将其(可能由脚本添加)添加到application.yml。客户端将登录,然后理想情况下数据源将设置在代码的单个点。 (我们还没有找到一种方法,在文档上看来它可以在每个服务上静态定义)。 这样我们将为所有客户端创建一个已编译的应用程序,每个客户端有一个数据库。

  2. 为每个客户端设置不同的环境。这意味着我们将为每个客户端创建一个一个已编译的应用程序,然后使用基于文件夹的结构进行部署。 (因此客户端将使用例如myapplication.com/clientid,其中编译的应用程序将在其中)。每次新客户注册时,都应该创建一个新的环境和数据库。

  3. 该应用程序是一个b2b服务,所以我们谈论的是几十个或几百个客户端。

    修改

    两种方法中哪一种更好,为什么?我们宁愿有一个已编译的应用程序,因为它更容易管理部署,但是grails根据登录的用户动态定义数据源似乎不可行(随意如果我错的话,我就能做好准备。因此,拥有myapplication.com/clientid的结构非常重要,这可能更容易管理不同的环境。

0 个答案:

没有答案