2009-04-08 47 views
5

試圖在嵌入式Derby數據庫中使用JRuby 1.2.0和Rails 2.3.2。我已經複製derbytools.jarderby.jar$RUBY_HOME/lib,但rake db:migrate仍然給:在JRuby on Rails上使用嵌入式Derby

The driver encountered an error: 
    cannot load Java class org.apache.derby.jdbc.ClientDriver 

Aaaand ......我打了一個預感,並理解了它。所以,我會在這裏發佈這個以防其他人遇到同樣的問題。

幾乎所有的文檔,我發現網上有德比以下database.yml配置:

development: 
    adapter: jdbc 
    driver: org.apache.derby.jdbc.ClientDriver 
    url: jdbc:derby:[db];create=true 
    username: xxx 
    password: xxx 

這可能工作正常的客戶機/服務器設置,但對於嵌入式Derby的設置,你需要這樣的:

development: 
    adapter: jdbc 
    driver: org.apache.derby.jdbc.EmbeddedDriver 
    url: jdbc:derby:[db];create=true 
    username: xxx 
    password: xxx 

請注意'EmbeddedDriver',而不是'ClientDriver'。

回答

2

要回答,因爲我討厭在我的個人資料中看到那個紅色塊。

當您使用嵌入式德比時,ActiveRecord-JDBC中還存在一個微妙的錯誤 - 如果您不給它一個用戶名和密碼,則什麼都不起作用。我追蹤了這個錯誤的原因,並且正在提交補丁,但是如果遇到同樣的問題,請告訴我,我會在這裏發佈代碼。僅使用標準的Ubuntu軟件包和我的數據庫配置 IM:

+0

+1:幫了我很多! – Rekin 2010-12-09 12:09:32

0

奇怪它的工作對我很好,在我的Ubuntu 9.04盒

development: 
adapter: jdbc 
driver: org.apache.derby.jdbc.EmbeddedDriver 
url: jdbc:derby:[myapp];create=true 
0

的ClientDriver是derbyclient.jar中

0

進一步對唐的回答,當使用沒有用戶名/密碼的ClientDriver時,我得到這個錯誤:The driver encountered an error: java.sql.SQLNonTransientConnectionException: Password length (0) is outside the range of 1 to 255.

在database.yml中設置用戶名/密碼修復了問題!

相關問題