2016-06-08 9 views
6

Slick 3 hat "Import API", um bestimmte Datenbanktreiber zu verwenden. z.B.Importieren Sie verschiedene db-Treiber in Slick

import slick.driver.H2Driver.api._ 
...DAO implementation... 

oder

import slick.driver.PostgresDriver.api._ 
...DAO implementation... 

Wie kann ich postgresql in der Produktion und h2 in Unit-Test verwenden?

Antwort

6

Verwenden Sie stattdessen DatabaseConfig. Wie Slick documentation heißt es:

Oben auf der Konfigurationssyntax für Database gibt es eine weitere Schicht in Form von DatabaseConfig, die Sie zusammen einen Slick-Treiber sowie eine passende Datenbank konfigurieren können. Dies macht es leicht, abstrakte über verschiedene Arten von Datenbanksystemen durch einfach eine Konfigurationsdatei zu ändern.

Statt Datenbank spezifische Treiber zu importieren, erhalten zunächst eine DatabaseConfig:

val dbConfig = DatabaseConfig.forConfig[JdbcProfile]("<db_name>") 

Und dann api importieren davon:

import dbConfig.driver.api._ 
+0

Ist es möglich, mit benutzerdefinierten Treiberklasse zu benutzen? z.B. https://github.com/tminglei/slick-pg Ich habe versucht, aber es scheint, dass es einige benutzerdefinierte implitits nicht erkennt –

+0

Vielleicht hilft das http://stackoverflow.com/questions/35636436/whats-the-difference-between- using-databaseconfig-und-datenbank-in-slick –