Как получить Hibernate для выполнения CREATE DATABASE при необходимости для postgresql, когда hibernate.hbm2ddl.auto настроен на создание - PullRequest
0 голосов
/ 06 июня 2011

Я использую spring-roo , gwt и hibernate для создания веб-сайта. Мы используем базу данных HyperSonic в памяти, но я пытаюсь переключиться на postgres .

Все работает нормально, если я использовал драйвер jdbc3 . Единственная проблема заключается в том, что мне нужно отдельно выполнить оператор CREATE DATABASE вне hibernate, прежде чем он создаст таблицы с помощью [hibernate.hbm2ddl.auto](http://docs.jboss.org/hibernate/core/3.3/reference/en/html/session-configuration.html#configuration-optional), настроенного на создание. Есть ли еще одна опция, которую я могу настроить, чтобы Hibernate делал CREATE DATABASE, если это необходимо?

1 Ответ

2 голосов
/ 06 июня 2011

Не совсем.Вы должны сделать CREATE DATABASE, используя базу данных шаблонов (обычно template1).Обычная последовательность событий:

  1. Подключение к template1 базе данных
  2. Выполнение CREATE DATABASE newdb;
  3. Повторное подключение к новой базе данных;
  4. Начните выдавать DDL операторов.

Если вам нужна дополнительная информация, посмотрите на особенности того, как PostgreSQL завершает CREATE DATABASE, и вы поймете, почему.

...