When using clojure with postgresql, whenever a statement I issue is malformed in some way or otherwise rejected by the db itself I get something like the following error:
java.sql.BatchUpdateException: 
  Batch entry 0 drop schema public cascade was aborted.  
  Call getNextException to see the cause.
How can I call getNextException so that I can see what I did wrong? Where do I call it from?
See this link on clojure/jdbc showing how to drop a table with Clojure/JDBC.
It also shows you how to handle errors with a try catch block.
From within that try catch block, you can write something similar to:
(.printStackTrace (.getCause e))
                        I have used the following to drop/create tables successfully and to get accurate error information when postgresql gets upset:
(defn drop-table [name]
    (sql/with-connection db
      (with-open [s (.createStatement (sql/connection))]
        (try
          (.addBatch s (str "drop table " name ))
          (seq (.executeBatch s))
          (catch Exception _)))))
(defn setup []
  (comment "TODO: create tables here"))
(defn -main []
  (try
  (print "Dropping table...") (flush)
  (drop-table "table_name")
  (print "Creating database structure...") (flush)
  (setup)
  (println " done")
  (catch Exception e (.getNextException e))))
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With