Конфигурация Liquibase JPA для referenceUrl

Я изо всех сил пытаюсь создать наборы изменений JPA аннотированных классов для моей базы данных, используя liquibase. Тем не менее, я очень смущен несколькими вещами.

Я использую следующее:

liquibase.properties

#liquibase.properties
driver:                 org.postgresql.Driver
classpath:              real_path/.m2/repository/org/postgresql/postgresql/9.2-1002-jdbc4/postgresql-9.2-1002-jdbc4.jar
url:                    jdbc:postgresql://localhost:5432/diquiz
username:               postgres
password:               postgres
referenceUrl:           hibernate:ejb3:diQuiz
referenceUsername:      postgres
referencePassword:      postgres
changeLogFile:          changelog-master.xml

и

java -jar real_path\liquibase-core-3.0.6.jar diffChangeLog

и обычный файл persistence.xml со стандартной конфигурацией JPA.

Я получаю сообщение об ошибке: Liquibase diffChangeLog Failed: java.lang.RuntimeException: Cannot find database driver: Driver class was not specified and could not be determined from the url (hibernate:ejb3:unit)

Я сбит с толку, потому что в приведенном ниже ответе говорится, что нам нужен файл hibernate.cfg.xml (даже у меня вместо него persistence.xml), но затем он говорит, что мы можем использовать некоторые URL-адреса, которые определены на странице вики. Гибернация с использованием JPA (аннотированных объектов) и liquibase

Страница Wiki говорит, что если нам нужно использовать JPA, мы можем выбирать между тремя типами URL-адресов.

hibernate:ejb3:myPersistenceUnit
hibernate:ejb3:com.example.MyConfigFactory
hibernate:ejb3:myPersistenceUnit?hibernate.ejb.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy

Итак, я выбираю первый и устанавливаю в Liquidbase.properties его как referenceUrl.

Кроме того, на странице вики упоминается: (https://github.com/liquibase/liquibase-hibernate/wiki)

Если вы используете версию Liquibase для командной строки, вам просто нужно добавить файл liquibase-hibernate[3|4].jar в каталог LIQUIBASE_HOME/lib.

Я тоже это сделал. Все равно не работает. Может кто-нибудь объяснить мне как-то, что мне не хватает?

Большое спасибо!


person Ioan    schedule 17.11.2013    source источник


Ответы (1)


Проблема в том, что вы вызываете liquibase с помощью «java -jar». Строка пути к классу в банке не может получить дополнительные банки из каталога lib, поэтому файл liquibase-hibernate.jar не включается в путь к классам.

Запустите liquibase, используя файл sh/bat, включенный в банку liquibase: real_path/liquibase[.bat] diffChangeLog

person Nathan Voxland    schedule 18.11.2013