1
我試圖使用PlaySlick配置兩個數據庫,記錄爲here。在下面的代碼中的問題是,即使我配置了第二個數據庫db2
任何使用它的嘗試都會將動作重定向到db1
(嘗試在db1中查找表並引發SQL異常,表示未找到該表)。使用注入在PlaySlick中配置兩個數據庫
如何在PlaySlick中使用注入配置兩個數據庫?
這是我的嘗試:
class ManageUsersDAO @Inject()(
@NamedDatabase("db1") protected val dbConfigProvider: DatabaseConfigProvider,
@NamedDatabase("db2") protected val dbConfigProvider2: DatabaseConfigProvider)
extends HasDatabaseConfigProvider[JdbcProfile] {
import driver.api._
val db1 = dbConfigProvider.get[JdbcProfile].db
val db2 = dbConfigProvider2.get[JdbcProfile].db
而且application.conf條目:
slick.dbs.db1.driver = "slick.driver.MySQLDriver$"
slick.dbs.db1.db.driver = "com.mysql.jdbc.Driver"
slick.dbs.db1.db.url = "jdbc:mysql://localhost:3306/db1"
slick.dbs.db1.db.user = "root"
slick.dbs.db1.db.password = "db1"
slick.dbs.db2.driver = "slick.driver.MySQLDriver$"
slick.dbs.db2.db.driver = "com.mysql.jdbc.Driver"
slick.dbs.db2.db.url = "jdbc:mysql://localhost:3306/db2"
slick.dbs.db2.db.user = "root"
slick.dbs.db2.db.password = "db2"
PlaySlick示例應用程序擴展了'HasDatabaseConfigProvider',有什麼選擇? – ps0604
但是這個特質並沒有給出任何基本的東西。看看源代碼。它的作用基本上爲你提供:'覆蓋最終保護的val dbConfig:DatabaseConfig [P] = dbConfigProvider.get [P]'(你已經在這一行做過:'val db1 = dbConfigProvider.get [JdbcProfile] .db' )。 所以答案是 - 當你使用一個數據庫時,它可以節省1或2行。在你的情況下,你已經創建了這條線,所以沒有其他選擇需要(不需要擴展任何東西)。 但我們不同意這個問題(我懷疑它是相關的)。你確定你在數據庫中需要表嗎? –
我只是再次測試這個,它運作良好,你是對的 – ps0604