Как заставить Hibernate создать базу данных SQL скрипта для инициализации и обновления

Hibernate умеет создавать структуру базы данных. Ниже приведен пример того, как выглядит конфигурация с использованием JPA2 с <property name="hibernate.hbm2ddl.auto" value="create"/>
(Используйте Hibernate Entity Manager в этом случае)

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="persistenceUnit" transaction-type="RESOURCE_LOCAL">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>
            <!-- value="create" to build a new database on each run; value="update" to modify an existing database; value="create-drop" means the same as "create" but also drops tables when Hibernate closes; value="validate" makes no changes to the database -->
            <property name="hibernate.hbm2ddl.auto" value="create"/>
            <property name="hibernate.ejb.naming_strategy" value="org.hibernate.cfg.ImprovedNamingStrategy"/>
            <property name="hibernate.connection.charSet" value="UTF-8"/>
            <!-- Uncomment the following two properties for JBoss only -->
            <!-- property name="hibernate.validator.apply_to_ddl" value="false" /-->
            <!-- property name="hibernate.validator.autoregister_listeners" value="false" /-->
        </properties>
    </persistence-unit>
</persistence>

Как заставить Hibernate создать базу данных SQL скрипта для инициализации и обновления? (это можно запустить вручную или с помощью пакетного выполнения) и какие инструменты использовать для этого.

Да, в журнале есть операторы SQL (Q Получение сценария SQL из обновления Hibernate), но это не чистое решение.

Цель состоит в том, чтобы подготовить решение для автоматического обновления базы данных с каждым выпуском версии.

1 ответ

Для автоматического обновления базы данных посмотрите другой инструмент, специально разработанный для этой работы. Я бы предложил Liqiubase.

Другие вопросы по тегам