Использование встроенного дерби с JRuby на Rails - PullRequest
5 голосов
/ 08 апреля 2009

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

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

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

Почти вся документация, которую я нашел в Интернете, имеет следующую 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».

Ответы [ 4 ]

2 голосов
/ 09 апреля 2009

Собираюсь ответить, потому что я ненавижу видеть этот красный блок в моем профиле.

Существует также небольшая ошибка в ActiveRecord-JDBC при использовании встроенного дерби - если вы не дадите ему имя пользователя и пароль, ничего не получится. Я выяснил причину этой ошибки и работаю над отправкой патча, но если вы столкнетесь с той же проблемой, что и я, дайте мне знать, и я опубликую код здесь.

0 голосов
/ 28 января 2010

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

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

0 голосов
/ 07 декабря 2009

ClientDriver находится в derbyclient.jar

0 голосов
/ 11 мая 2009

Странно, у меня все работало нормально, на моем Ubuntu 9.04 box: Я использую только стандартные пакеты Ubuntu, и моя конфигурация БД:

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