当使用clojure的korma sqlite3助手时,sqlite3数据库的默认路径是什么?

时间:2013-12-17 17:19:00

标签: sqlite clojure korma

使用korma.db时,defdb可以使用sqlite3帮助程序建立与sqlite3数据库的连接。但是,我尝试将数据库放在项目目录的根目录下,与project.clj一起放在资源目录中,但是当我尝试使用db时,我得到了:

  

无法使用SQL执行查询:   SELECT“examples”。* FROM“examples”:: []   的SQLException:    消息:[SQLITE_ERROR] SQL错误或缺少数据库(没有这样的表:示例)

毋庸置疑,我的sqlite数据库包含一个示例表。尝试执行此操作时,我在根项目目录中获得了一个零字节的sqlite.db文件。

顺便说一句,我是在项目中从lein repl做的。

编辑:这是我失败时所做的事情:

(use 'korma.db)
(defdb db (sqlite3 {:db "filename.db"}))
(use 'korma.core)
(defentity examples)
(select examples)

1 个答案:

答案 0 :(得分:1)

以防任何人想知道或遇到这个......

使用版本[korma "0.4.2"][org.xerial/sqlite-jdbc "3.7.15-M1"] 在我的project.clj

我的项目结构如下:

root/project.clj
root/db/dev.sqlite3
root/src/...

这就是我使用korma访问db的方法:

(use 'korma.db)
(defdb mydb {:classname "org.sqlite.JDBC"
      :subprotocol "sqlite"
      :subname "db/dev.sqlite3"})

基本上,使用子名称,我能够在lein项目的根目录中搜索。我在上面的dir结构的子名称中添加了db/