Проблемы с просмотром базы данных h2, используемой в проекте Grails

Я пытаюсь взглянуть на таблицы, сгенерированные в базе данных h2, используемой в проекте Grails, но что-то не так.

Я подключаюсь к консоли браузера по адресу http://127.0.1.1:8082/, но все, что там можно просмотреть, это INFORMATION_SCHEMA и пользователи. Как мне получить таблицы, используемые/генерируемые приложением?

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


person vector    schedule 22.09.2011    source источник


Ответы (3)


Используете ли вы правильный URL-адрес JDBC при входе в систему?

По умолчанию в Grails используется jdbc:h2:mem:devDB.

Когда указан несуществующий URL-адрес, например jdbc:h2:blabla, создается пустая база данных со значениями по умолчанию INFORMATION_SCHEMA и Users, как вы описали.

Убедитесь, что вы подключаетесь к URL-адресу, по которому ваше приложение Grails хранит свои таблицы. Вы можете найти URL-адрес в $GRAILS_PROJECT/config/DataSource.groovy после определения url.

environments {
  development {
    dataSource {
      pooled = false
      logSql = false
      username = "sa"
      password = ""

      dialect = "com.hp.opr.hibernate.dialect.H2Dialect"
      driverClassName = "org.h2.Driver"
      dbCreate = "create-drop"
      url = "jdbc:h2:mem:devDB;DB_CLOSE_DELAY=-1;MVCC=TRUE"
    }
  }
}
person Antoine    schedule 22.09.2011
comment
... вы уверены, что в диалектной строке нет опечатки? - person vector; 22.09.2011
comment
Отредактировано. Я использую модифицированную версию H2Dialect в своем проекте, но здесь это все равно не имеет значения. - person Antoine; 22.09.2011
comment
... спасибо, что указали мне правильное направление :-). - person vector; 23.09.2011

Если вы используете версию 2.0, веб-консоль включена по умолчанию в режиме разработки и может быть включена в других средах: http://grails.org/doc/2.0.0.M2/guide/conf.html.#databaseConsole

Если вы еще не используете версию 2.0, вы можете установить http://grails.org/plugin/dbconsole. плагин или перейдите по ссылке в мой блог и настройте его самостоятельно, если вы хотите настроить URL-адрес (или если вы используете Grails до версии 1.3.6, так как плагин имеет искусственное ограничение версии до 1.3.6+)

person Burt Beckwith    schedule 22.09.2011
comment
Да, я использую 2.0. Итак, снова я могу нормально подключиться, но не вижу таблиц, созданных приложением. Правильно ли настроен плагин h2 в Config.groovy? (см. редактирование вопроса) - person vector; 22.09.2011
comment
Ничто из этого не относится к поддержке H2 в 2.0 — он просто регистрирует веб-сервлет, чтобы вы могли получить к нему доступ в браузере. Единственные параметры настройки — включено ли это и какой URL-адрес. - person Burt Beckwith; 22.09.2011

... поэтому в источнике данных я изменил URL-адрес на: url = "jdbc:h2:rswDb" (удалив часть "mem" и изменив имя базы данных). Затем в корневом каталоге проекта появились 3 файла db.

Затем в консоли db установите URL-адрес jdbc: URL-адрес jdbc: jdbc:h2:~/work/web/rsw/rswDb

... и когда я нажал «подключиться», все столы были на месте!

Спасибо еще раз!

person vector    schedule 23.09.2011