【问题标题】:Grails: dbconsole isn't showing my domain classesGrails:dbconsole 没有显示我的域类
【发布时间】:2012-03-05 11:25:42
【问题描述】:

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

我正在使用 STS 和 grails 2.0,并且我创建了一个包含多个域类的应用程序(我可以转到控制器并查看列表和内容),但是 dbconsole 没有显示任何域类。直接进入INFORMATION_SCHEMA

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

【问题讨论】:

  • 您目前的数据库 URL 是什么?
  • 对我来说正确答案是jdbc:h2:mem:devDb;MVCC=TRUE
  • 但我的 dbconsole 默认尝试转到jdbc:h2:~/test

标签: grails h2


【解决方案1】:

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

应在此初始屏幕中更改 URL。

【讨论】:

    【解决方案2】:

    谢谢你,米奇!我有同样的问题!确实,看看

    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

    【讨论】:

      猜你喜欢
      • 2017-07-06
      • 2012-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多