我怎么能在Grails 2.0.4中这样做?
dataSource {
dbCreate = "create-drop"
String host = request.getServerName()
switch( host ) {
case "company1.com": url = "jdbc:mysql://localhost/db1"
case "company2.com": url = "jdbc:mysql://localhost/db2"
default: null
}
}
我不想使用多租户核心插件
答案 0 :(得分:4)
Grails 2支持multiple datasources,因此您应配置两个单独的数据源,并让您的服务/域层在两者之间切换:
dataSource_company1 {
dbCreate = "create-drop"
url = "jdbc:mysql://localhost/db1"
}
dataSource_company2 {
dbCreate = "create-drop"
url = "jdbc:mysql://localhost/db2"
}
然后配置您的域对象以支持:
class Foo {
static mapping = {
datasources(['company1', 'company2'])
}
// ...
}
最后,根据请求使用datasource:
def company = request.serverName.split('.')[0]
def fooThings = Foo."$company".findAll()
您还可以将数据源自动装配到服务或控制器中,并直接使用它们。