2017-07-21 13 views
1

私はYesodとPersistent(私は基本的なyesod mysqlスキャフォールディングを使用しています)を使用してウェブサイトを構築しています。 私はメインのものと異なるデータベースにアクセスする必要がありますが、runDBは デフォルトの接続パラメータと接続を使用します。 Persistentを2つの異なる接続パラメータで使用する簡単な方法はありますか?Yesod/Persistentを使用して2つの異なるデータベースサーバーにアクセスする方法は?

答えて

0

スキャフォールドコードを見ると、別の接続パラメータを使用して作成された別のプールにアクセスする別のrundDBを簡単に定義する必要があります。これはまた、Settingsを変更して余分な接続情報を読んだり表示したりすることを意味します。 しかし、主な問題の1つは、ロードするデータタイプに応じてどの接続(またはrunDB)を使用するかを覚えておく必要があるということです。別の解決策は、フェデレーテッド・テーブルを使用することです。 MySql(またはMariaDB)を使用すると、リモートデータベースに接続されたプロキシテーブルを作成できます。いくつかの設定が必要ですが、クライアント側で安全で使いやすいという利点があります。

1

接続を作成する関数(runSqliteなど)はIOモナドにあります。これは、liftIOでYesodアプリケーションのHandler関数で呼び出すことができることを意味します。すぐにデータベース上でクエリを実行することもできます。

関連する問題