5

korma.db を使用する場合、defdb は sqlite3 ヘルパーを使用して sqlite3 データベースへの接続を確立できます。ただし、プロジェクトディレクトリのルート、project.clj、およびリソースディレクトリにデータベースを配置しようとしましたが、データベースを使用しようとすると、次のようになります。

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)
4

1 に答える 1

1

誰かが疑問に思っているか、これに遭遇した場合に備えて...

バージョン[korma "0.4.2"][org.xerial/sqlite-jdbc "3.7.15-M1"] my の使用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 プロジェクトのルートを検索できます。db/上記のディレクトリ構造ごとにサブネームを追加しました。

于 2016-07-23T21:00:49.390 に答える