2012-02-14 2 views
7

В этом прекрасном блоге говорится, что в dbconsole я должен видеть маленькие значки слева для моих таблиц, например, как он видит «КНИГУ». http://www.redtoad.ca/ataylor/2011/11/h2-database-console-in-grails-2/Grails: dbconsole не показывает классы моего домена

Я использую STS и grails 2.0, и я делаю приложение с несколькими классами домена (я могу перейти к контроллерам и просмотреть списки и прочее), но в dbconsole не отображаются классы домена. Просто идет прямо в INFORMATION_SCHEMA.

Где мои классы домена? Я могу видеть списки и использовать .findBy и прочее !!

+0

Ваш URL-адрес вашей базы данных в настоящее время? –

+2

Для меня правильный ответ: 'jdbc: h2: mem: devDb; MVCC = TRUE' – Mikey

+0

Но моя dbconsole по умолчанию пытается перейти на' jdbc: h2: ~/test'. – Mikey

ответ

18

Вам нужно изменить URL на то, что он говорит в своем DataSource.groovy

URL должен быть изменен в этом начальном экране. enter image description here

1

Спасибо, Мики! У меня такая же проблема! Действительно, посмотрите на

grails-app/conf/DataSource.groovy 

По крайней мере, в моем случае, JDBC URL может быть установлен в JDBC: h2: мем: devDb для разработки баз данных, jdbc:h2:mem:testDb для тестовой базы данных, а также jdbc:h2:mem:prodDb для базы данных.

Консоль не имеет возможности узнать, какой из них вы предпочитаете, поэтому она по умолчанию проверяет. Кроме того, если вы нажмете «URL JDBC» в режиме dbconsole в браузере, он покажет вам несколько советов. В частности, в нем объясняется, что «URL-адрес jdbc: h2: ~/test означает, что база данных хранится в домашнем каталоге пользователя в файлах, начинающихся с« теста »». Действительно, в моем домашнем каталоге у меня теперь есть test.h2.db, test.lock.db и test.trace.db. Это также объясняет, почему данные не сохраняются по умолчанию. Разве вы не заметили, что при настройке по умолчанию каждый раз, когда вы перезапускаете Grails, вам нужно воссоздать все объекты? Ну, это из-за части «: mem:» в URL JDBC.

Этот по умолчанию, вероятно, не имеет никакого отношения к Grails; Я бы предположил, что H2 просто создает тестовую базу данных в вашем домашнем каталоге по умолчанию, если не указано иное. Я также предполагаю, что у вас может быть много разных баз данных в сложной производственной среде, и именно поэтому Grails не пытается угадать, что именно вы хотите.

См. Также official H2 documentation

Смежные вопросы