Как настроить Ruby on Rails с Oracle? - PullRequest
15 голосов
/ 19 апреля 2009

В Интернете есть несколько страниц, где обсуждается это, но большинство устарели или неточны.

Что за совок?

Ответы [ 4 ]

38 голосов
/ 19 апреля 2009

Сборка рубина, драгоценного камня и рельсов

согласно http://rubyonrails.org/download:

build ruby
build gem
use gem to install rails

Получить Oracle Instantclient

Скачать с 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

Сборка ruby-oci8

Обратите внимание, что пользователям JRuby не нужен ruby-oci8, но нужен JAR-файл Oracle JDBC , ojdbc6.jar или ojdbc5.jar, в зависимости от того, используете ли вы Java 6 или Java 5.

Загрузите с http://ruby -oci8.rubyforge.org / ru / 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"

Установить activerecord-oracle_enhanced-adapter

Обратите внимание, не activrecord-oracle-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>
* * Конфигурация тысяча сорок-девять / database.yml

Используйте database , если у вас есть запись TNS, в противном случае используйте host . Обратите внимание, что у вас есть три записи (devel, test, production) для обновления.

development:
    adapter: oracle_enhanced
    database: orcl           # format is tns-name entry
    host:  myorclhost/orcl   # format is hostname/instance-name
    username: scott
    password: tiger

Ссылки

3 голосов
/ 21 июня 2012

В моем случае у меня уже был клиент Ruby, gem, Rails и Oracle в Windows 7. Я установил двоичный пакет ruby-oci8 для 32-битной Windows:

Источник: http://ruby -oci8.rubyforge.org / ru / file.install-binary-package.html

gem install ruby-oci8
gem install --platform x86-mingw32 ruby-oci8

А потом:

gem install activerecord-oracle_enhanced-adapter

и вы готовы сделать Rails на Oracle.

3 голосов
/ 22 апреля 2009

Некоторые дополнительные ссылки на предыдущий ответ.

Если вы работаете на Mac, вы можете следовать руководству Как настроить Ruby и Oracle Instant Client на Mac OS X , чтобы получить доступ к базе данных Oracle из Ruby.

Затем вы можете прочитать ActiveRecord Oracle расширенный вики-адаптер , чтобы получить возможность подключения Oracle в Ruby on Rails. Этот адаптер используется во многих Ruby on Rails в проектах Oracle и находится в стадии активного обслуживания.

Я также регулярно пишу о Ruby и Oracle в своем блоге .

1 голос
/ 03 августа 2015

Просто обновление для отображения текущих версий (на момент написания: август 2015 г.):

  • Установка libaio (в Ubuntu / Debian Linux возможно с apt-get install libaio-dev - 0.3.109-4)
  • Скачать Oracle Instant Client (12.1.0.2.0, Basic + SDK должно хватить, но пока не пробовал Basic Lite вместо Basic)
  • Установить переменные среды (в соответствии с вашими потребностями):

    export LD_LIBRARY_PATH=/path/to/the/Instant/Client/directory
    export NLS_LANG="German_Germany.WE8ISO8859P1"
    
  • Ruby (2.2.1p85), gem (2.4.6), Rails (4.2.3), ruby-oci8 (2.1.8, https://github.com/kubo/ruby-oci8) и activerecord-oracle_enhanced-adaptor (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

  • Настройте приложение Rails:

    • in Gemfile add 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, чтобы иметь возможность создать пользователя и предоставить ему соответствующие привилегии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...