2013-12-17 4 views
5

Wenn Sie korma.db verwenden, kann defdb einen sqlite3-Helfer verwenden, um eine Verbindung zu einer sqlite3-Datenbank herzustellen. Ich habe jedoch versucht, die Datenbank im Stammverzeichnis des Projektverzeichnisses neben project.clj und im Ressourcenverzeichnis zu platzieren, aber wenn ich versuche, die Datenbank zu verwenden, bekomme ich:Was ist der Standardpfad für die sqlite3-Datenbank, wenn die corajure-Korma-sqlite3-Helfer verwendet werden?

Fehler beim Ausführen der Abfrage mit SQL: SELECT "Beispiele" * FROM "Beispiele" :: [] SQLException. Nachricht: [sqlite_error] SQL-Fehler oder fehlende Datenbank (keine solche Tabelle: Beispiele)

Unnötig meine sQLite-Datenbank zu sagen enthält eine Beispieltabelle. Beim Versuch, dies zu tun, bekomme ich eine sqlite.db-Datei von null Bytes auf dem Root-Projekt-Verzeichnis.

Ich mache das von lein repl innerhalb des Projekts, übrigens.

Edit: Das ist, was ich tun, wenn es fehlschlägt:

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

Bitte geben Sie den Code, den Sie verwendet haben, um eine Verbindung zur db herzustellen und senden Sie die Abfrage – ProGM

+0

Ich werde es zur Frage hinzufügen. – user3112185

+0

Nicht das gleiche Ergebnis erhalten. Ich habe die Anweisungen, die Sie gaben, ausprobiert und eine "filename.db" im Stammverzeichnis erstellt, wie ich es erwarten könnte. Ich fügte dieser Datenbank eine "Beispiel" -Tabelle hinzu, und dann funktionierte es gut. Hast du dieses Problem immer noch? – palfrey

Antwort

1

Nur falls jemand fragt oder diese läuft in ...

Version Mit [korma "0.4.2"] und [org.xerial/sqlite-jdbc "3.7.15-M1"] in meinem project.clj:

Meine Projektstruktur sieht so aus:

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

und das ist, wie ich Korma verwenden, um die db zuzugreifen:

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

Grundsätzlich mit subname, ich bin in der Lage in der Wurzel des lein Projektes zu suchen. Ich habe db/ im Unternamen per meine Verzeichnisstruktur oben hinzugefügt.

Verwandte Themen