2015-01-10 2 views
4

Я пытаюсь использовать Liquibase вместе с аннотациями JPA, но я, похоже, не работаю.Объекты Liquibase и JPA, аннотированные

У меня есть чистая БД без таблиц и одного объекта JPA в моем проекте. Когда я запускаю diffix libasease, он утверждает, что БД обновлена, но это просто неверно.

Maven конфигурации для LiquiBase плагина:

<plugins> 
     <plugin> 
      <groupId>org.liquibase</groupId> 
      <artifactId>liquibase-maven-plugin</artifactId> 
      <version>3.3.1</version> 
      <configuration> 
       <changeLogFile>src/main/resources/liquibase/changelog.xml</changeLogFile> 
       <referenceUrl>hibernate:spring:com.mycompany.entity?dialect=org.hibernate.dialect.PostgreSQLDialect</referenceUrl> 
       <driver>org.postgresql.Driver</driver> 
       <url>jdbc:postgresql://localhost:5432/liqubase-test</url> 
       <username>postgres</username> 
       <password>postgres</password> 
      </configuration> 
      <executions> 
       <execution> 
        <phase>process-resources</phase> 
        <goals> 
         <goal>update</goal> 
        </goals> 
       </execution> 
      </executions> 
      <dependencies> 

       <dependency> 
        <groupId>org.liquibase.ext</groupId> 
        <artifactId>liquibase-hibernate4</artifactId> 
        <version>3.4</version> 
       </dependency> 

       <dependency> 
        <groupId>org.springframework</groupId> 
        <artifactId>spring-beans</artifactId> 
        <version>4.1.4.RELEASE</version> 
       </dependency> 

      </dependencies> 
     </plugin> 
    </plugins> 

changelog.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.0.xsd"> 



</databaseChangeLog> 

и когда я бегу generateChangeLog задачу:

[INFO] Scanning for projects... 
[INFO]                   
[INFO] ------------------------------------------------------------------------ 
[INFO] Building liqubase-sample 1.0-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
[INFO] --- liquibase-maven-plugin:3.3.1:generateChangeLog (default-cli) @ liqubase-sample --- 
[INFO] ------------------------------------------------------------------------ 
[INFO] Executing on Database: jdbc:postgresql://localhost:5432/liqubase-test 
[INFO] Generating Change Log from database postgres @ jdbc:postgresql://localhost:5432/liqubase-test (Default Schema: public) 
<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" 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.3.xsd http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd"/> 
[INFO] Output written to Change Log file, null 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESS 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 1.213 s 
[INFO] Finished at: 2015-01-10T14:47:24+01:00 
[INFO] Final Memory: 9M/216M 
[INFO] ------------------------------------------------------------------------ 

ответ

3

LiquiBase правильно сравнивая целевую базу данных схема с измененным списком, который вы указали .... который пуст :-)

Вам нужно сделать дополнительную работу. В следующей статье, как представляется, сделать хорошую работу в изложении последовательности действий для LiquiBase с Hibernate:

Представляется слишком сложным, но то, что LiquiBase делает, захватывая все изменения в схему. В двух словах вам нужно привести DB в последнее состояние захвата, сгенерировать дельта, а затем добавить эту дельта в исходный код.

Надеюсь, это поможет.

+0

так просто ... спасибо – Igor