在 Slick 3.0 中,有一种方法可以在不使用特定 JDBC 驱动程序的情况下声明表

In Slick 3.0 is there a way to declare Tables without using a Specific JDBC Driver

在 slick 2.0 中可以使用这样的东西:

import driver.simple._

这里也有人问:In Slick is there a way to declar Tables without using a Specific JDBC Driver

然而,这似乎不再适用于 Slick 3.0。在他们的升级指南中有:

The JdbcDriver object has been deprecated. You should always use the correct driver for your database system. ~ http://slick.lightbend.com/doc/3.0.0/upgrade.html

但我仍然需要能够在 Postgress 驱动程序和 H2 之间切换。有什么我可以做的吗? 例如,是否可以将 import-config 放在一个地方(针对特定驱动程序)而在其他地方进行通用导入。当我需要切换数据库时,我只需在一个地方更改导入。由于驱动程序切换可能会发生编译错误,但没关系。但是我不想去每个与驱动程序相关的 class 并且每次我想切换数据库时都更改导入..

当然,通常的模式是这样的。

object DriverRepository{
val defaultDriver: DatabaseConfig[JdbcProfile] = DatabaseConfig.forConfig("slick.dbs.default")
}

这里有一个位置,其中包含对您要使用的驱动程序类型的唯一引用。

那么您只需要:

import DriverRepository.defaultDriver.driver.api._

访问您的所有方法