Oracle로 Ruby on Rails를 구성하는 방법은 무엇입니까?
웹에는 이에 대해 논의하는 페이지가 여러 개 있지만 대부분은 오래되었거나 어떤 면에서는 부정확합니다.
특종이 뭐죠?
루비, 보석, 레일 구축
http://rubyonrails.org/download 에 따르면 다음과 같습니다.
build ruby
build gem
use gem to install rails
Oracle Instant 클라이언트 가져오기
https://www.oracle.com/technetwork/database/database-technologies/instant-client/downloads/index.html 에서 다운로드합니다.
아키텍처를 위해서는 이 두 가지 패키지가 필요합니다.
instantclient-basic
instantclient-sdk
이 파일의 압축을 풀고 이 링크를 만듭니다.
cd instantclient_10_2
# .dylib for mac, .so for linux
ln -s libclntsh.dylib.10.1 libclntsh.dylib
루비-oci8 구축
참고로 JRuby 사용자에게는 ruby-oci8이 필요하지 않지만 Java 6 또는 Java 5가 있는지에 따라 Oracle JDBC jar가 필요합니다.
http://ruby-oci8.rubyforge.org/en/index.html 에서 다운로드 후 실행
# DYLD for mac
export DYLD_LIBRARY_PATH=/path/to/instantclient_10_2
# LD for linux
export LD_LIBRARY_PATH=/path/to/instantclient_10_2
ruby setup.rb config
ruby setup.rb setup
ruby setup.rb install
이 행과 데이터베이스 연결 문자열을 사용하여 테스트합니다.
ruby -r oci8 -e "OCI8.new('scott/tiger@orcl').exec('select * from user_tables') do |r| puts r.join(','); end"
활성 record-oracle_enhanced-adapter 설치
참고로 오래된 많은 페이지에서 언급하는 것처럼 활성 레코드-오라클-어댑터가 아닙니다.
gem install activerecord-oracle_enhanced-adapter
그 달콤한 레일 같은 짓을 해봐요.
rails railstest
cd railstest
# edit config/database.yml as below
ruby script/generate scaffold comic title:string issue:integer publisher:string
rake db:migrate
ruby script/server
브라우저에서 테스트
<http://localhost:3000/comics>
config/signal.yml
TNS 항목이 있는 경우 데이터베이스를 사용하고 그렇지 않은 경우 호스트를 사용합니다.업데이트할 항목이 3개(개발, 테스트, 프로덕션) 있습니다.
development:
adapter: oracle_enhanced
database: orcl # format is tns-name entry
host: myorclhost/orcl # format is hostname/instance-name
username: scott
password: tiger
참고문헌
- http://emphaticsolutions.com/2008/05/22/connecting-to-oracle-from-ruby-on-rails.html
- http://www.oracle.com/technology/pub/articles/saternos-ror-faq.html
- http://drawohara.com/post/37166893/rails-unsucking-oci-oracle-on-rails-2-1
- http://www.oracle.com/technology/pub/articles/haefel-oracle-ruby.html
이전 답변에 대한 몇 가지 추가 링크.
Mac에 있는 경우, Mac OS X에서 Ruby 및 Oracle Instant Client를 설정하는 방법 튜토리얼을 따라 Ruby에서 Oracle 데이터베이스에 액세스할 수 있습니다.
그런 다음 ActiveRecord Oracle 고급 어댑터 위키를 읽고 Ruby on Rails에서 Oracle 연결을 얻을 수 있습니다.이 어댑터는 오라클 프로젝트의 많은 Ruby on Rails에서 사용되며 현재 적극적인 유지보수 중입니다.
또한 정기적으로 블로그에 Ruby와 Oracle에 대한 글을 올립니다.
제 경우에는 이미 Windows 7에서 루비, 보석, 레일스, 오라클 클라이언트를 사용하고 있었습니다.Windows 32비트용으로 ruby-oci8 바이너리 패키지를 설치했습니다.
출처 : http://ruby-oci8.rubyforge.org/en/file.install-binary-package.html
gem install ruby-oci8
gem install --platform x86-mingw32 ruby-oci8
그 다음은:
gem install activerecord-oracle_enhanced-adapter
오라클에서 레일즈를 할 준비가 되어 있습니다.
현재 버전을 반영하기 위한 업데이트(작성 기준:2015년 8월):
- 설치하다
libaio
(Ubuntu/Debian Linux의 경우)apt-get install libaio-dev
- 0.3.109-4) - Oracle Instant Client 다운로드(12.1.0.2.0, Basic + SDK로 충분합니다. Basic 대신 Basic Lite를 아직 시도하지 않았습니다.)
환경 변수 설정(필요에 맞게):
export LD_LIBRARY_PATH=/path/to/the/Instant/Client/directory export NLS_LANG="German_Germany.WE8ISO8859P1"
루비(2.2.1p85), 보석(2.4.6), 레일(4.2.3), ruby-oci8(2.1.8, https://github.com/kubo/ruby-oci8) ) 및 active record-graphics_graphics(1.6.2, https://github.com/rsim/oracle-enhanced) )는 일반적인 방식으로 설치할 수 있습니다(사용했습니다).
rvm
(1.26.11) - https://rvm.io/), 의 경우 기본적으로 세 가지 보석에 대한 작업을 수행해야 합니다.gem install rails ruby-oci8 activerecord-oracle_enhanced-adapter
레일 앱 만들기
Rails 앱 구성:
인에
Gemfile
더하다activerecord-oracle_enhanced-adapter
그리고.ruby-oci8
:gem 'activerecord-oracle_enhanced-adapter' gem 'ruby-oci8'
인에
config/database.yml
Oracle 환경 추가:development: adapter: oracle_enhanced host: my-db-host port: my-port database: my-db username: my-user password: my-password
번들이 보석을 잡게 하소서.
bundle install
:... Using activerecord-oracle_enhanced-adapter 1.6.2 ... Using ruby-oci8 2.1.8 ...
울릴 준비 완료:
rails generate scaffold book title:string author:string rake db:create db:migrate ...
참고:
Oracle 환경에 따라 다름(즉,my-user
이미 존재하거나 생성해야 함)를 생략할 수 있습니다.db:create
진술 여부후자의 경우에는rake
사용자를 생성하고 해당 권한을 부여할 수 있도록 SYS/SYSTEM 암호를 입력하라는 메시지가 나타납니다.
언급URL : https://stackoverflow.com/questions/764887/how-to-configure-ruby-on-rails-with-oracle
'source' 카테고리의 다른 글
Oracle DUP_VAL_ON_INDEX 예외를 무시하면 얼마나 나쁜가요? (0) | 2023.09.16 |
---|---|
SQL에서 "AS" 키워드를 사용하지 않고 앨리어싱을 할 수 있는데 무슨 의미가 있습니까? (0) | 2023.09.16 |
표시와 함께 입력: 블록은 블록이 아닙니다. 왜 안 됩니까? (0) | 2023.09.11 |
WooCommerce에서 맞춤 주문 상태로 Pay Now URL을 얻는 방법은? (0) | 2023.09.11 |
별도의 스레드 풀에서 실행되는 스프링 부트 액추에이터 (0) | 2023.09.11 |