Как настроить Play 2.4 с помощью slick и liquibase + postgresql

Я начинаю небольшой личный проект в игровой среде 2.4. Я хочу использовать slick 3 и liquibase для обработки запросов к БД и управления схемой БД. В самом начале я столкнулся с некоторыми проблемами в настройке.

В двух словах.

Я создал простое приложение из активатора (play-scala seed). Я добавил slick в проект. Я попытался подключить liquibase к своему приложению в соответствии с инструкцией: https://github.com/Ticketfly/play-liquibase

Я добавил два файла:

<!-- conf/liquibase/changelog.xml -->
<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
        xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
       a xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
         http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.4.xsd">

    <include file="conf/liquibase/changelogs/changelog-1.xml"/>

</databaseChangeLog>

и

<!-- conf/liquibase/changelogs/changelog-1.xml -->
<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
        xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
         http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.4.xsd">

    <changeSet id="create application schema" author="author">
        <sql>
            create schema appschema;
        </sql>
    </changeSet>

</databaseChangeLog>

затем я пытаюсь запустить приложение в терминале с помощью: activator -> run (приложение запускается, но я не вижу ни результатов изменений, ни сообщений об ошибках)

Есть идеи, что мне не хватает?

Прикрепляю build.sbt и application.conf

build.sbt

import sbt.project

name := "projecta"
version := "1.0-SNAPSHOT"

lazy val root = (project in file(".")).enablePlugins(PlayScala)

scalaVersion := "2.11.6"

libraryDependencies ++= Seq(
  jdbc,
  cache,
  ws,
  specs2 % Test,
  "com.typesafe.play" %% "play-slick" % "1.1.1",
  "com.typesafe.play" %% "play-slick-evolutions" % "1.1.1",
  "com.ticketfly" %% "play-liquibase" % "1.0"
)

resolvers += "scalaz-bintray" at "http://dl.bintray.com/scalaz/releases"

routesGenerator := InjectedRoutesGenerator

приложение.conf

fork in run := true

slick.dbs.default.driver="slick.driver.PostgresDriver$"
slick.dbs.default.db.driver="org.postgresql.Driver"
slick.dbs.default.db.url="jdbc:postgresql://localhost:5432/projecta"
slick.dbs.default.db.user="postgres"
slick.dbs.default.db.password="postgres"

liquibase {
  url      = "jdbc:postgresql://localhost:5432/projecta"
  driver   = "org.postgresql.Driver"
  user     = "postgres"
  password = "postgres"
}

liquibase.enable = true

person viniolli    schedule 30.12.2015    source источник
comment
Проблема была на моей стороне. Я думал, что наборы изменений должны запускаться при запуске приложения, но на самом деле они запускаются по первому запросу.   -  person viniolli    schedule 02.01.2016
comment
Кроме того, вам не нужны play-slick-evolutions, так как вы используете liquibase для эволюции схемы.   -  person Dragisa Krsmanovic    schedule 18.02.2016


Ответы (1)


Похоже, вам не хватает ссылки на драйвер Postgres. Вы можете добавить ниже postgress ref в зависимости от вашей библиотеки.

"org.postgresql" % "postgresql" % "9.4.1207"

person Gajendra Naidu    schedule 01.01.2016
comment
Спасибо за ваш ответ, все еще не работает. Я даже пытался отключить эволюцию по умолчанию, но это тоже не помогло. - person viniolli; 01.01.2016