我怎样才能在 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
}
}
我不想使用 Multi-Tenancy 核心插件
最佳答案
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'])
}
// ...
}
最后,根据请求使用数据源:
def company = request.serverName.split('.')[0]
def fooThings = Foo."$company".findAll()
您还可以将数据源自动连接到您的服务或 Controller 中并直接使用它们。
关于database - Grails:我可以切换案例数据库 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11167526/