2017-01-23 7 views
1

これはclojure.java.jdbcとデータベース接続の詳細を含むマップで始まる、私が試したものです:ClojureでJDBCを使用してデータベースを作成する方法は?

(:require '[clojure.java.jdbc :as j])) 

(def mysql-db {:dbtype "mysql", :dbname "changelog_development", :user "root", :password "", :useSSL true, :verifyServerCertificate false} 

まず私がexecuteを使用しようとしましたが、データベースがまだ存在しないためには、与えられた接続構成を使用することはできません。

(j/execute! mysql-db "CREATE DATABASE changelog_development") ;; MySQLSyntaxErrorException Unknown database 'changelog_development'  

だから私はdbnameキーと再び試してみましたが、しかし、エラーが私は行方不明のパラメータを持っていると言うことを取り除く:

(j/execute! (dissoc mysql-db :dbname) "CREATE DATABASE changelog_development") ;; IllegalArgumentException db-spec {:dbtype "mysql", :user "root", :password "", :useSSL true, :verifyServerCertificate false} is missing a required parameter 

答えて

4

clojure.java.jdbc接続仕様にはさまざまな形式があります。 :dbtype:userなどのキーを持つものには、:dbnameも指定する必要があります。

また、代わりに、接続URIを使用して、接続の仕様を指定して、もう一度ステートメントを実行することができます。

{:connection-uri "jdbc:mysql://localhost/?user=root&password="}

関連する問題