2016-07-09 1 views
2

В гладком 2.0 можно было использовать что-то вроде этого:В Slick 3.0 есть способ объявить таблицы без использования конкретного драйвера JDBC

import driver.simple._ 

был также задан вопрос здесь: In Slick is there a way to declar Tables without using a Specific JDBC Driver

Однако это похоже, больше не подходит для Slick 3.0. В руководстве по их обновлению есть:

Объект JdbcDriver устарел. Вы всегда должны использовать правильный драйвер для вашей базы данных . ~ http://slick.lightbend.com/doc/3.0.0/upgrade.html

Но мне еще нужно, чтобы иметь возможность переключаться между водителем Postgress и H2. Я могу что-нибудь сделать? Например, возможно иметь import-config в одном месте (для конкретного драйвера) и общий импорт в другом месте. Когда мне нужно переключить dbs, я просто изменяю импорт в одном месте. Могут произойти ошибки компиляции из-за переключения драйверов, но это нормально. Но я не хочу обращаться к каждому классу, связанному с драйверами, и менять импорт каждый раз, когда я хочу переключить DB.

+1

Посмотрите на [JdbcProfile] (http://slick.lightbend.com/doc/3.1.1/ api/index.html # slick.driver.JdbcProfile) – jilen

ответ

3

Конечно, обычный шаблон выглядит примерно так.

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

У вас есть одно место с уникальной ссылкой на тип драйвера, который вы хотите использовать.

Тогда вам просто необходимо:

import DriverRepository.defaultDriver.driver.api._ 

, чтобы получить доступ ко всем методам

+0

Спасибо, работает как шарм! – Vistritium