Ruby on rails 在Rails上使用嵌入式Derby和JRuby
正在尝试将JRuby 1.2.0和Rails 2.3.2与嵌入式Derby数据库一起使用。我已经将Ruby on rails 在Rails上使用嵌入式Derby和JRuby,ruby-on-rails,jruby,derby,Ruby On Rails,Jruby,Derby,正在尝试将JRuby 1.2.0和Rails 2.3.2与嵌入式Derby数据库一起使用。我已经将derbytools.jar和derby.jar复制到$RUBY\u HOME/lib,但是rake db:migrate仍然提供: The driver encountered an error: cannot load Java class org.apache.derby.jdbc.ClientDriver 啊,还有。。。我凭直觉想出来了。所以,我会把这个贴在这里,以防其他人遇到和
derbytools.jar
和derby.jar
复制到$RUBY\u HOME/lib
,但是rake db:migrate
仍然提供:
The driver encountered an error:
cannot load Java class org.apache.derby.jdbc.ClientDriver
啊,还有。。。我凭直觉想出来了。所以,我会把这个贴在这里,以防其他人遇到和我一样的问题
我在网上找到的几乎所有文档都有以下Derby的数据库.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”。将回答这个问题,因为我讨厌在我的个人资料中看到那个红色块
当您使用嵌入式derby时,ActiveRecord JDBC中还有一个微妙的错误——如果您不给它一个用户名和密码,那么什么都不起作用。我已经找到了这个错误的原因,正在提交一个补丁,但是如果你遇到了和我一样的问题,请告诉我,我会在这里发布代码。奇怪,它对我来说很好,在我的ubuntu 9.04框中: 我只使用标准的ubuntu软件包,我的DB配置是:
development:
adapter: jdbc
driver: org.apache.derby.jdbc.EmbeddedDriver
url: jdbc:derby:[myapp];create=true
ClientDriver在derbyclient.jar中继Don的回答之后,我在使用没有用户名/密码的ClientDriver时遇到了这个错误:
驱动程序遇到了一个错误:java.sql.SQLNonTransientConnectionException:密码长度(0)超出了1到255的范围。
在database.yml中设置用户名/密码修复了该问题