A instrução de criação de tabela jdbc do Clojure não é executada, a menos que seja utilizado o Leiningen REPL

Eu tenho um pequeno programa Clojure que usa oClojure JDBC ferramentas para criar uma tabela em um banco de dados HSQL. No entanto, só parece realmente criar a tabela se eu executá-lo do REPL de Leiningen. Ele não cria a tabela se eu executar o código usandolein run ou do meu IDE (IntelliJ). Não há exceções relatadas. Em ambos os casos, a saída é apenas "(0)".

Aqui está o trecho de código:

<code>(ns tramway.core
  (:require [clojure.java.io :as io]
            [clojure.java.jdbc :as sql]))

(def hsql-db {:subprotocol "hsqldb"
              :subname "file:/tmp/tramwaydb"
              :user "SA"
              :password ""})

(defn -main []
  (println (sql/with-connection hsql-db (sql/create-table
                                 :footfall
                                 [:id "INTEGER" "GENERATED ALWAYS AS IDENTITY(START WITH 1)"]
                                 [:sample_date "DATE"]
                                 [:exhibition "varchar(255)"]))))
</code>

E já que estou usando Leiningen, aqui está minhaproject.clj:

<code>(defproject tramway "1.0.0-SNAPSHOT"
  :description "Description here"
  :dependencies [[org.clojure/clojure "1.3.0"]
                 [org.clojure/java.jdbc "0.1.4"]
                 [org.hsqldb/hsqldb "2.2.8"]]
  :main tramway.core)
</code>

Se eu fizer:

<code>$ lein repl

tramway.core=> (-main)
(0)
nil
</code>

e então verifique/tmp/tramway.log Eu posso ver oCREATE TABLE executado com sucesso.

No entanto, se eu fizer:

<code>$ rm -rf /tmp/tramway.*
$ lein run
(0)
</code>

e, em seguida, verifique o mesmo arquivo, ele está vazio. istofaz criar o.log, .propertiese.script arquivos. Todos menos o.log arquivo tem conteúdo; simplesmente não há registro doCREATE TABLE tendo sido executado.

O que estou fazendo de errado? Eu esperaria ter o mesmo resultado, quer eu execute minha função (-main) do REPL ou faça o Leiningen executá-la automaticamente.

Eu também tentei tirar a criação da mesa do-main função e executá-lo apenas como um script através do meu IDE, e eu ainda recebo o mesmo resultado ruim.

questionAnswers(1)

yourAnswerToTheQuestion