Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание БД используя Hibernate, генерирование схемы БД 
:(
    Опции темы
MarkHunt
Дата 16.6.2014, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 7.3.2013

Репутация: нет
Всего: нет



Как лучше всего вести разработку БД приложения с Hibernate?

Я попробовал разные способы разработки БД.

1. Создавал схему вручную.
2. Полагался на hbm2ddl.auto=update
3. И использовал hibernate-tools в Ant билде. С помощью него можно например, генерировать sql скрипты в файл, и потом прогонять их вручную в БД.
   Выглядит примерно так:
Код

<!-- Schema export -->
    <taskdef name="hibernatetool" classname="org.hibernate.tool.ant.HibernateToolTask" classpathref="project.classpath"/>

    <target name="schemaexport" depends="compile, copymetafiles" description="Exports a generated schema to DB and file">
        <hibernatetool destdir="${basedir}">
            <classpath path="${build.dir}"/>
            <annotationconfiguration configurationfile="${build.dir}/hibernate.cfg.xml"/>
            <hbm2ddl drop="true" create="true" export="true" outputfilename="helloworld-ddl.sql" delimiter=";" format="true"/>
        </hibernatetool>
    </target>


Первый способ, я считаю самым надёжным, но требует намного больше времени, чем например второй.

Про второй способ почитал здесь, что он не надёжен.
И, конечно же в продакшане, крайне не рекомендуется его использовать. Об этом также написано в книге Java Persistence with Hibernate
Код

WARNING We’ve seen Hibernate users trying to use SchemaUpdate to update the
schema of a production database automatically. This can quickly end in
disaster and won’t be allowed by your DBA.


Про третий способ я прочитал также из этой книги. Но мне не понравилось то, что
при генерировании схемы БД, Ant выбрасывал исключение на отсутствие какого-то класса в Hibernate, хотя DDL скрипты для схемы, вроде как, генерировались.

Также читал на stackoverflow такую тему, где советуют
создавать схему вручную и использовать LiquiBase (только в чём смысл использования этого инструмента, если я и так буду вручную делать схему?).

Если кто встречался с этой проблемой, какой способ вы считаете убодным и надёжным для создания/обновления структуры БД в разработке/продакшене?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0690 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.