Grails:dbconsole没有显示我的域类

时间:2012-02-14 02:50:19

标签: grails h2

在这个精美的博客上,它说在dbconsole中我应该能够看到左边的小图标,就像他看到“BOOK”一样。 http://www.redtoad.ca/ataylor/2011/11/h2-database-console-in-grails-2/

我正在使用STS和grails 2.0,我使用多个域类创建应用程序(我可以访问控制器并查看列表和内容),但dbconsole不显示任何域类。直接进入INFORMATION_SCHEMA

我的域名类在哪里?我可以看到列表并使用.findBy和stuff !!

2 个答案:

答案 0 :(得分:19)

您需要将网址更改为DataSource.groovy中的内容

应在此初始屏幕中更改URL。 enter image description here

答案 1 :(得分:1)

谢谢你,Mikey!我有同样的问题!确实,请看看

grails-app/conf/DataSource.groovy

至少在我的情况下,JDBC URL可以设置为开发数据库的jdbc:h2:mem:devDb,测试数据库的jdbc:h2:mem:testDb和生产数据库的jdbc:h2:mem:prodDb

控制台无法知道您喜欢哪一个,因此默认为测试。此外,如果您在浏览器中的dbconsole模式中单击“JDBC URL”,它会显示一些提示。特别是,它解释了“URL jdbc:h2:〜/ test表示数据库存储在用'test'开头的文件中的用户主目录中。”实际上,在我的主目录中,我现在有test.h2.dbtest.lock.dbtest.trace.db。它还解释了为什么默认情况下数据不会保留。您是否注意到每次重新启动Grails时使用默认设置,您必须重新创建所有对象?好吧,这是因为JDBC URL中的“:mem:”部分。

此默认值可能与Grails无关;除非另有说明,否则我猜想H2会默认在您的主目录中创建一个测试数据库。我还想象在复杂的生产环境中你可能有许多不同的数据库,这就是为什么Grails不想猜测你想要什么。

另见official H2 documentation