La sentencia Clojure JDBC create-table no se ejecuta a menos que use Leiningen REPL

Tengo un pequeño programa de Clojure que usa elClojure JDBC Herramientas para crear una tabla en una base de datos HSQL. Sin embargo, solo parece crear la tabla si la ejecuto desde el REPL de Leiningen. No crea la tabla si ejecuto el código usandolein run o desde mi IDE (IntelliJ). No hay excepciones reportadas. En ambos casos, la salida es simplemente "(0)".

Aquí está el fragmento 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>

Y ya que estoy usando Leiningen, aquí está miproject.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>

Si lo hago:

<code>$ lein repl

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

y luego revisar/tmp/tramway.log Puedo ver elCREATE TABLE ejecutado exitosamente

Sin embargo, si lo hago:

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

y luego comprobar el mismo archivo, está vacío. Esohace crear el.log, .propertiesy.script archivos. Todos menos el.log archivo tiene contenido; simplemente no hay registro de laCREATE TABLE habiendo sido ejecutado

¿Qué estoy haciendo mal? Espero tener el mismo resultado si ejecuto mi función (-main) desde el REPL o si Leiningen lo ejecuta automáticamente.

También he intentado sacar la creación de la mesa de la-main Funcionar y ejecutarlo solo como un script a través de mi IDE, y todavía obtengo el mismo mal resultado.

Respuestas a la pregunta(1)

Su respuesta a la pregunta