В Интернете есть несколько страниц, которые обсуждают это, но большинство из них устарело или неточно.
Что совок?
В Интернете есть несколько страниц, которые обсуждают это, но большинство из них устарело или неточно.
Что совок?
согласно http://rubyonrails.org/download:
build ruby
build gem
use gem to install rails
Загрузить с http://www.oracle.com/technology/tech/oci/instantclient/index.html
Вам нужны эти два пакета для вашей архитектуры.
instantclient-basic
instantclient-sdk
Разархивируйте эти файлы и сделайте эту ссылку
cd instantclient_10_2
# .dylib for mac, .so for linux
ln -s libclntsh.dylib.10.1 libclntsh.dylib
Примечание. Пользователям JRuby не нужен ruby-oci8, но нужен банкомат JDBC Oracle, либо ojdbc6.jar, либо ojdbc5.jar в зависимости от того, есть ли у вас Java 6 или Java 5.
Скачайте с 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/[email protected]').exec('select * from user_tables') do |r| puts r.join(','); end"
Заметьте, не 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>
Используйте базу данных, если у вас есть запись TNS, иначе используйте хост. Обратите внимание, что у вас есть три записи (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
Некоторые дополнительные ссылки на предыдущий ответ.
Если вы находитесь на Mac, вы можете следовать руководству Как настроить Ruby и Oracle Instant Client на Mac OS X, чтобы получить доступ к База данных Oracle из Ruby.
Затем вы можете прочитать ActiveRecord Oracle расширенный вики-адаптер, чтобы получить возможность подключения Oracle в Ruby on Rails. Этот адаптер используется во многих проектах Ruby on Rails на Oracle и находится под активным обслуживанием.
Я также регулярно публикую о Ruby и Oracle на моем blog.
В моем случае у меня уже был Ruby, gem, Rails и клиент Oracle в Windows 7. Я установил бинарный пакет ruby-oci8 для Windows 32-bit:
Источник: 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
и вы готовы сделать Rails на Oracle.
Просто обновление, чтобы отразить текущие версии (начиная с записи: август 2015):
libaio
(на Ubuntu/Debian Linux, возможно, с apt-get install libaio-dev
- 0.3.109-4)Установите переменные среды (соответствующие вашим потребностям):
export LD_LIBRARY_PATH=/path/to/the/Instant/Client/directory
export NLS_LANG="German_Germany.WE8ISO8859P1"
Ruby (2.2.1p85), драгоценный камень (2.4.6), Rails (4.2.3), ruby-oci8 (2.1.8, https://github.com/kubo/ruby-oci8) и activerecord-oracle_enhanced-adapter (1.6.2, https://github.com/rsim/oracle-enhanced) можно установить обычным способом (I использовал rvm
(1.26.11) для этого - https://rvm.io/), поэтому в основном это должно выполнить работу для трех драгоценных камней:
gem install rails ruby-oci8 activerecord-oracle_enhanced-adapter
Создайте приложение Rails
Настройте приложение 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 возьмет драгоценные камни: 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, чтобы иметь возможность создать пользователя и предоставить ему соответствующие привилегии.