2009-04-08 7 views
5

Intentando utilizar JRuby 1.2.0 y Rails 2.3.2 con una base de datos Derby incrustada. He copiado derbytools.jar y derby.jar a $RUBY_HOME/lib, sin embargo rake db:migrate sigue dando:Uso de Derby integrado con JRuby on Rails

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

Aaaand ... me jugó una corazonada y lo descubrió. Entonces, publicaré esto aquí en caso de que alguien más se encuentre con el mismo problema que yo.

Casi toda la documentación que se encuentra en línea tiene la siguiente configuración database.yml para Derby:

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

Esto probablemente funciona bien para una configuración cliente/servidor, pero para una configuración de Derby incorporado debe esto:

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

Tenga en cuenta el 'EmbeddedDriver', y no 'ClientDriver'.

Respuesta

2

Voy a responder, porque odio ver ese bloque rojo en mi perfil.

También hay un error sutil en ActiveRecord-JDBC cuando utiliza derby integrado; si no le da un nombre de usuario y una contraseña, nada funciona. He rastreado la causa de este error, y estoy trabajando en enviar un parche, pero si te encuentras con el mismo problema que tuve, avísame y publicaré el código aquí.

+0

+1: ¡me ayudó mucho! – Rekin

0

extraño funcionó bien para mí, en mi ubuntu 9.04 caja: im utilizando sólo los paquetes de Ubuntu estándar y la configuración de mi DB es:

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

El ClientDriver está en derbyclient.jar

0

Más a la respuesta de Don, estaba obteniendo este error al utilizar ClientDriver sin un nombre de usuario/contraseña: The driver encountered an error: java.sql.SQLNonTransientConnectionException: Password length (0) is outside the range of 1 to 255.

Configuración de nombre de usuario/contraseña en database.yml solucionado el problema!

Cuestiones relacionadas