2

さまざまなユーザー (顧客) が組織のデータのみを含むさまざまなデータベースを指す必要がある Grails Web アプリケーションを開発しています。残念ながら、分離されたデータベースは要件であり、全員に対して 1 つの Web アプリケーションのみを使用できるようにするよう求められています。

ただし、Grails は、1 つのデータベースに接続する単一のデータソース プールのみを想定しています。

ログインしているユーザーに基づいて、セッションごとにデータベース接続を切り替えられるようにしたいと考えています。ここでは、異なる接続が BootStrap init() 中にプロパティ ファイルから読み取られます。

これまでのところ、競合状態がないように見える解決策を見つけることができず、見つけることができるプラグインはなく、一般的な問題ではないようです.

私たちの最も有望な方法は、カスタムの動的データ ソースを作成し、Bootstrap でセットアップして組織 -> dataSource のマップを定義し、Bootstrap で定義されたクロージャを利用して GORM 動作の前に適切な dataSource を見つけることでしたが、これは競合状態を引き起こすようです。レイテンシです。

この切り替えを合法的に実行する方法を知っている人はいますか?

ありがとう

4

2 に答える 2

1

Grails が Spring に基づいて構築されていることを考えると、解決可能な独自のデータソースを開発することが最善の策です。

  1. 動的データソース ルーティング
  2. データソース ルーティングの例
于 2013-11-25T22:34:37.220 に答える
0

あなたの質問では、アプリケーションを一度デプロイして、DataSourceユーザーが使用するものを構成しようとしているのか、それとも単にデプロイによって構成したいのかが明確ではありません。

デプロイメントごとの場合、Grails を使用すると構成を外部化できます。これを設定して、クラスパスまたは静的な場所にあるファイルを使用できます。

于 2013-11-25T22:03:31.647 に答える