2013-02-19 42 views
2

我無法獲得用於Clojure的lobos數據庫遷移庫,可以使用maven-clojure插件和Maven風格的項目結構。 Lobos在lobos.migrations命名空間中查找數據庫遷移。如果我佈局項目Leiningen風格:在Maven風格的項目佈局中找不到lobos.migrations

src/ 
    lobos/ 
    migrations.clj 

正確洛沃斯在運行時發現lobos.migrations,當通過lein運行。但是,如果我佈置項目Maven風格:

src/ 
    main/ 
    clojure/ 
     lobos/ 
     migrations.clj 

,並使用maven-clojure-plugin運行相同的測試,羅伯斯不再認定lobos.migrations。我認爲這是與clojure-maven-plugin一個問題,但我有同樣的問題(羅伯斯沒有找到lobos.migrations),如果我通過萊昂運行,在project.clj適當地設置源路徑:

:source-paths  ["src/main/clojure"] 

如果我提出lobos/src/下並添加src/作爲源路徑:

:source-paths  ["src" "src/main/clojure"] 

然後羅伯士再次正確認定lobos.migrations

我想使用Maven風格的項目佈局(最終是maven-clojure插件)。我該如何幫助lobos找到lobos.migrations?我哪裏錯了?

回答

2

lobos.migration/*src-directory*變量表示查找的源根*migrations-namespace*。如果lobos.migration/*reload-migrations*爲真(默認值),則lobos.migrations會在此源目錄中查找遷移名稱空間。缺省值爲src/,所以需要將其重新設置爲src/main/clojure才能使用Maven樣式的目錄結構。其他

一個值得注意的問題:很不幸

(binding [lobos.migration/*reload-migrations* false] 
    ;; run migration 
) 
0

您需要更改動態變量lobos.migration/*migrations-namespace*。這裏記錄在這裏:https://github.com/budu/lobos#migrations

+0

,不解決這個問題:從JAR運行時(即不從源代碼),您必須禁用遷移命名空間的重裝爲好。 – 2013-02-26 05:45:50

+0

@BarryWark重新綁定後會出現什麼樣的錯誤? – ponzao 2013-02-26 12:38:57

相關問題