2009-04-08 4 views
5

Попытка использования JRuby 1.2.0 и Rails 2.3.2 со встроенной базой данных Derby. Я скопировал derbytools.jar и derby.jar в $RUBY_HOME/lib, но rake db:migrate все еще дает:Использование встроенного Derby с JRuby on Rails

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

Aaaand ... Я играл догадку и понял. Итак, я отправлю это здесь, если кто-то другой столкнется с той же проблемой, что и я.

Почти вся документация я нашел в Интернете имеет следующую database.yml конфигурации Derby:

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 есть также тонкая ошибка, когда вы используете встроенное дерби - если вы не указали ему имя пользователя и пароль, ничего не работает. Я отследил причину этой ошибки, и я работаю над отправкой патча, но если вы столкнулись с той же проблемой, что и я, дайте мне знать, и я отправлю код здесь.

+0

+1: Мне очень помогли! – Rekin

0

Странный он работал отлично для меня, на моих убунту 9.04 ящик: им с помощью только стандартные пакеты Ubuntu и мою конфигурацию БД:

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

Далее на ответ Дона, я получал эту ошибку при использовании ClientDriver без имени пользователя/пароля: The driver encountered an error: java.sql.SQLNonTransientConnectionException: Password length (0) is outside the range of 1 to 255.

Установка имени пользователя/пароля в database.yml исправлена ​​проблема!

Смежные вопросы