在Rails上使用嵌入式Derby和JRuby

Don*_*rve 5 ruby-on-rails jruby derby

尝试将JRuby 1.2.0和Rails 2.3.2与嵌入式Derby数据库一起使用.我已经复制derbytools.jarderby.jar$RUBY_HOME/lib,但rake db:migrate仍然给:

The driver encountered an error: 
    cannot load Java class org.apache.derby.jdbc.ClientDriver
Run Code Online (Sandbox Code Playgroud)

Aaaand ......我发挥了预感并想出来了.所以,我会在这里发布,以防其他人遇到同样的问题.

我在网上找到的几乎所有文档都有以下database.ymlDerby配置:

development:
    adapter: jdbc
    driver: org.apache.derby.jdbc.ClientDriver
    url: jdbc:derby:[db];create=true
    username: xxx
    password: xxx
Run Code Online (Sandbox Code Playgroud)

这可能适用于客户端/服务器设置,但对于嵌入式Derby设置,您需要:

development:
    adapter: jdbc
    driver: org.apache.derby.jdbc.EmbeddedDriver
    url: jdbc:derby:[db];create=true
    username: xxx
    password: xxx
Run Code Online (Sandbox Code Playgroud)

请注意'EmbeddedDriver',而不是'ClientDriver'.

Don*_*rve 2

我要回答,因为我讨厌在我的个人资料中看到那个红色块。

当您使用嵌入式 derby 时,ActiveRecord-JDBC 中还有一个微妙的错误 - 如果您不给它用户名和密码,则什么都不起作用。我已经找到了这个错误的原因,并且正在努力提交补丁,但是如果您遇到与我相同的问题,请告诉我,我将在此处发布代码。