Skip to content

Instantly share code, notes, and snippets.

@ajroetker
Forked from senior/gist:0b03c7b9d31ed64c3361
Last active August 29, 2015 14:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ajroetker/deb0bed8da2b8b5e7f6d to your computer and use it in GitHub Desktop.
Save ajroetker/deb0bed8da2b8b5e7f6d to your computer and use it in GitHub Desktop.
(defn deregister [write-db]
(let [the-right-driver (java.sql.DriverManager/getDriver (format "jdbc:%s:%s" (:subprotocol write-db) (:subname write-db)))]
(doseq [driver (enumeration-seq (java.sql.DriverManager/getDrivers))
:when (not= (class driver) (class the-right-driver))]
(java.sql.DriverManager/deregisterDriver driver))))
(defn postgres? []
(every? #(instance? org.postgresql.Driver %)
(enumeration-seq (java.sql.DriverManager/getDrivers))))
(defn hypersql? []
(every? #(instance? org.hsqldb.jdbc.JDBCDriver %)
(enumeration-seq (java.sql.DriverManager/getDrivers))))
> (deregister {:classname "org.hsqldb.jdbcDriver"
:subprotocol "hsqldb"
:subname (str "mem:" (java.util.UUID/randomUUID) ";shutdown=true;hsqldb.tx=mvcc;sql.syntax_pgs=true")})
;=> nil
> (postgres?)
;=> false
> (hypersql?)
;=> true
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment