我使用Yesod和Persistent构建网站(我使用的是基本的yesod mysql脚手架)。
我需要访问主要的数据库,但runDB
使用的数据库
默认连接参数和连接。是否有一种简单的方法可以将Persistent与两个不同的连接参数一起使用?
答案 0 :(得分:1)
创建连接的函数(如approx(...)
)位于runSqlite
monad中。这意味着您可以使用IO
在Yesod应用程序的Handler
函数中调用它。您也可以立即在数据库上运行查询,这样非常简洁。
答案 1 :(得分:0)
查看脚手架代码,应该很容易定义另一个rundDB
访问使用不同连接参数创建的另一个池。这意味着还要修改Settings
以读取和设置额外的连接信息。
但是,主要问题之一是,需要记住要使用的连接(或runDB
),具体取决于要加载的数据类型。另一种解决方案是使用联合表。
MySql(或MariaDB)允许创建连接到远程数据库的代理表。即使它需要一些设置,这也是在客户端安全且易于使用的优势。