1

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
        }
}

マルチテナント コア プラグインを使用したくない

4

1 に答える 1

4

Grails 2 は複数のデータソースをサポートするため、2 つの別個のデータ ソースを構成し、サービス/ドメイン レイヤーで 2 つの間の切り替えを行う必要があります。

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()

また、データ ソースをサービスまたはコントローラーに自動接続して、直接使用することもできます。

于 2012-06-23T11:38:14.440 に答える