Grails:dbconsole不是&x27;不显示我的域类

Grails:dbconsole不是&x27;不显示我的域类,grails,h2,Grails,H2,在这个优秀的博客上,它说在dbconsole中,我应该能够看到我的表格左侧的小图标,就像他看到的“BOOK”一样 我使用的是STS和Grails2.0,我制作了一个包含多个域类的应用程序(我可以转到控制器并查看列表和其他内容),但是dbconsole没有显示任何域类。直接进入信息模式 我的域类在哪里?我可以查看列表并使用.findBy和其他东西 您需要将URL更改为DataSource.groovy中的内容 在此初始屏幕中应更改URL 谢谢你,迈克!我也有同样的问题!事实上,调查 grails-

在这个优秀的博客上,它说在dbconsole中,我应该能够看到我的表格左侧的小图标,就像他看到的“BOOK”一样

我使用的是STS和Grails2.0,我制作了一个包含多个域类的应用程序(我可以转到控制器并查看列表和其他内容),但是dbconsole没有显示任何域类。直接进入
信息模式


我的域类在哪里?我可以查看列表并使用.findBy和其他东西

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


在此初始屏幕中应更改URL

谢谢你,迈克!我也有同样的问题!事实上,调查

grails-app/conf/DataSource.groovy
至少在我的例子中,对于开发数据库,JDBC URL可以设置为JDBC:h2:mem:devDb;对于测试数据库,JDBC:h2:mem:testDb;对于生产数据库,JDBC:h2:mem:prodDb

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

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


另请参见

您当前的数据库URL是什么?对我来说,正确的答案是
jdbc:h2:mem:devDb;MVCC=TRUE
但默认情况下,我的数据库控制台尝试转到
jdbc:h2:~/test