首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Slick codegen不提供任何输出

Slick codegen不提供任何输出
EN

Stack Overflow用户
提问于 2017-03-15 14:37:30
回答 1查看 224关注 0票数 1

我正在尝试将当前版本的slick和slick-codegen (3.2.0)与sqlite数据库一起使用。当我尝试列出该表时,我得到了正确的名称。但是,当我尝试生成与这些表相对应的类时,我没有得到任何输出。

这是可行的:

代码语言:javascript
复制
object TableCodeGenerator extends App
{
    val db = Database.forURL("jdbc:sqlite:/home/samik/db/mydb.db", driver = "org.sqlite.JDBC")
    val tables = Await.result(db.run(MTable.getTables), 1 second).toList
    tables.foreach(println)
}

我得到的输出如下:

代码语言:javascript
复制
MTable(MQName(models),TABLE,null,None,None,None)
MTable(MQName(users),TABLE,null,None,None,None)

然而,下面的代码,直接以同样的方式运行,不能工作:

代码语言:javascript
复制
object TableCodeGenerator extends App
{
    val db = Database.forURL("jdbc:sqlite:/home/samik/db/mydb.db", driver = "org.sqlite.JDBC")
    val dbio = SQLiteProfile.createModel(Some(MTable.getTables))
    val model = db.run(dbio)

    val codegenFuture: Future[SourceCodeGenerator] = model.map(model => new SourceCodeGenerator(model))

    codegenFuture.onSuccess
    {
        case codegen => codegen.writeToFile(
            "org.sqlite.JDBC",
            "/tmp",
            "my.package.dao",
            "Tables",
            "Tables.scala")
    }
}

这意味着,代码成功运行,但我没有看到任何输出文件。我是不是遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-02 21:22:23

发生上述情况是因为底层代码正在静默地抛出异常。出现这种异常的原因是,我使用的是sqlite的一个“特性”,如果您没有在schema中提到数据类型,sqlite就会假定它是text类型。然而,这给圆滑的代码带来了问题。

更多details here。直接的解决方案是修复模式,但我认为这也在slick中得到了解决。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42802664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档