Usando incrustado Derby con JRuby on Rails
-
05-09-2019 - |
Pregunta
El intento de usar JRuby 1.2.0 y 2.3.2 rieles con una base de datos Derby incorporada. He copiado derbytools.jar
y derby.jar
a $RUBY_HOME/lib
, sin embargo rake db:migrate
sigue dando:
The driver encountered an error:
cannot load Java class org.apache.derby.jdbc.ClientDriver
Aaaand ... jugué una corazonada y descubierto. Por lo tanto, voy a publicar esto aquí por si alguien se topa 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'.
Solución
El ir a contestar, porque me gusta ver que el bloque rojo en mi perfil.
También hay un error sutil en ActiveRecord-JDBC cuando utiliza Derby Embedded - si no lo das un nombre de usuario y una contraseña, nada funciona. He rastreado la causa de este error, y estoy trabajando en la presentación de un parche, pero si llegas a tener el mismo problema que yo, que me haga saber, y voy a publicar el código aquí.
Otros consejos
Extraño funcionó bien para mí, en mi ubuntu 9.04 caja: i M 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
El ClientDriver está en derbyclient.jar
con la respuesta de Don, que estaba recibiendo este error cuando se utiliza el 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 usuario / contraseña en database.yml solucionado el problema!