5

使用 korma.db 时,defdb 可以使用 sqlite3 助手来建立与 sqlite3 数据库的连接。但是,我尝试将数据库放在项目目录的根目录、project.clj 旁边以及资源目录中,但是当我尝试使用 db 时,我得到:

使用 SQL 执行查询失败:SELECT "examples".* FROM "examples" :: [] SQLException: Message: [SQLITE_ERROR] SQL 错误或缺少数据库(没有这样的表:示例)

不用说我的 sqlite 数据库包含一个示例表。尝试执行此操作时,我在根项目目录上得到一个零字节的 sqlite.db 文件。

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

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

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

1 回答 1

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 访问数据库的方式:

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

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

于 2016-07-23T21:00:49.390 回答