2011-02-01 5 views
2

rvm을 사용하여 jruby (1.5.6)를 설치하고 모든 제 보석을 잘 설치했습니다. 내가JRuby는 내가 설치 한 어댑터를 사용할 수 없습니다

스크립트/러너와 같은 간단한 레일 작업을 실행할 수 있습니다

'1두고'및 출력은 괜찮습니다. 곧 데이터베이스에 충돌하면서 오류가 발생합니다. activerecord-jdbcmysql-adapter gem, Jruby, rvm, JAVA_JDK를 제거/재설치했습니다. JRUBY_HOME과 JAVA_HOME을 올바르게 설정했지만 아무것도 작동하지 않는 것처럼 보입니다.

의견이 있으십니까?

내가 아는 한 Java JDK 1.6.0 및 1.5.0이 설치되어 있습니다. IT는 현재 1.6.0을 가리 킵니다. 하지만 다른 모든 보석들이 제대로 설치 되었기 때문에 나는 이것이 완전히 다른 것으로 가정하고 있습니다.

나는 우분투 10.04 (64 비트)와 EC2 오전은

RVM와 루비 1.9.2 위대한 작품!

nohup을 : 무시 입력 /opt/jruby/lib/ruby/gems/1.8/gems/activerecord-2.3.8/lib/active_record/connection_adapters/abstract/connection_specification.rb:76:in establish_connection': Please install the jdbcmysql adapter: 보석 activerecord- 설치 jdbcmysql-adapter (no such file to load -- active_record/connection_adapters/jdbcmysql_adapter) (RuntimeError) from /opt/jruby/lib/ruby/gems/1.8/gems/activerecord-2.3.8/lib/active_record/connection_adapters/abstract/connection_specification.rb:60:in establish_connection '/opt/jruby/lib/ruby/gems/1.8/gems/activerecord/connection_adapters/abstract/connection_specification.rb:55:in에서 establish_connection' from /opt/jruby/lib/ruby/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:438:in 초기화 데이터베이스' from//home/tesmar/rails/statsheet/config/environment.rb:19에서 을 실행하십시오. /home/tesmar/rails/statsheet/config/environment.rb:39:in require' from /opt/jruby/lib/ruby/gems/1.8/gems/rails-2.3.8/lib/commands/runner.rb:39 from /opt/jruby/lib/ruby/gems/1.8/gems/rails-2.3.8/lib/commands/runner.rb:3:in 스크립트/러너의 ' 이 필요합니다. 3

+0

내가 추가해야 올바른 어댑터에 database.yml을 가리키는 지. – tesserakt

+0

나는 또한 여기서 투표가 어떻게 작동하는지 이해할 수 없다고 덧붙여 야합니다. 예를 들면 : 나는 마크에게 투표하는 동안 덱스의 대답을 -1로 썼다. 이제 덱스는 0을 보여주고 마크는 적절한 것을 보여줍니다 1. 내 투표는 포함되지 않습니까? – tesserakt

답변

-2

나는 그것을 알아 냈다. 수동으로 모든 rb 파일을 활성 레코드 gem (activerecord-jdbcmysql 및 activerecord-jdbc gem의 rb 파일)에 수동으로 복사 한 후 JAR 파일을 다운로드해야했습니다. JAR 파일을/opt/jruby/lib 디렉토리에 넣으면 작동합니다! 우!

+0

나는 아직도 당신 환경에 이상한 점이 있다고 주장한다. gem install *은 .rb 파일을 복사하지 않고 작동해야합니다. –

+0

그럴 수도 있지만, RVM 명령어를 정확히 따라갔습니다. 필요한 경우 ENV 덤프를 제공 할 수 있지만 도움이된다고 생각하는 경우 대부분 유용합니다 (예 : ruby ​​1.9 및 system ruby) – tesserakt

+0

JAR 파일을 다운로드 할 수 있다고 언급 했습니까? 이 문제를 해결하기 위해 실행 한 JAR 파일과 정확한 단계를 이해하는 데 도움을 주시기 바랍니다. –

1

오류 메시지가 표시되면 activerecord-jdbcmysql-adapter 보석을 설치해야합니다.

실행 환경이 rvm 환경과 다를 수 있습니다. 이 문제는 NetBeans와 같은 IDE에서 발생합니다. 앞뒤로 JRuby에서와 MRI 사이려고하는 경우에

+0

나는 그랬다. JRUBY를 사용합니다. 설치된 것으로 나열됩니다. – tesserakt

+0

어떻게 신고 했습니까? –

+0

jruby -S 보석 목록과 보석 목록. rvm이 jruby 버전과 gem을 연결하기 때문에, 같은 결과를 얻게됩니다. – tesserakt

0

, 당신도 당신의 Gemfile에이 같은 것을 추가 할 수 있습니다

if defined?(JRUBY_VERSION) 
    gem 'jdbc-mysql' 
    gem 'activerecord-jdbc-adapter' 
    gem 'activerecord-jdbcmysql-adapter' 
    gem 'warbler' 
else 
    gem 'mysql' 
    gem 'mongrel' 
end 

그런 다음 database.yml을이 같은 것을 추가

development: 

    adapter: <%= defined?(JRUBY_VERSION) ? 'jdbcmysql' : 'mysql' %> 
+0

덱스에 감사드립니다. 그러나 이것은 제가 찾고있는 것이 아닙니다. – tesserakt

+0

RVM 1.9.2를 처음 사용하고 jRuby를 사용하려고 시도하면 Gemfile.lock도 삭제하고'bundle install'을 다시 실행해야합니다. 또한 rvm을 사용한다면 번들러를 실행하기 전에 별도의 gemset을 만들어야했습니다. – Dex

+0

명령을 실행할 때 'jruby -S'를 사용하여 명령을 실행하는 것이 가장 좋습니다. – Dex

1

gemfile은 어떻게 보이나요?

광산이 작업과 같습니다

source 'http://rubygems.org' 

gem 'rails', '3.0.4' 


platforms :ruby do 
    gem 'mysql2' 
end 

platforms :jruby do 
    gem 'activerecord-jdbc-adapter' 
    gem 'jdbc-mysql', :require => false 
end 
+0

왜 require => : false입니까? – tesserakt

+0

아무 생각이 들지 않고 그냥 복사 붙여 넣기했습니다. 그러나 만약 내가 추측한다면, 나는 jdbc-mysql-gem이 'jdbc-mysql을 요구한다' – yxhuvud

관련 문제