Přístup k SQL serveru je konfigurován v souboru config/database.yml. Zde jsou uvedeny přihlašovací informace pro každou databázi, produkční, vývojovou i testovací. V tomto konfiguračním souboru jsou uvedeny parametry tak jak se použijí při sestavení spojení na SQL server. Podívejme se tedy jak se připojíme k SQL serveru přímo bez použití tohoto konfiguračního souboru. Použijeme k tomu metodu ActiveRecord::Base.establish_connection které v pojmenovaných argumentech předáme parametry spojení. Například k naší databázi se připojíme takto:
$KCODE='u'
require 'jcode'
require 'rubygems'
require 'active_record'
ActiveRecord::Base.establish_connection(
:adapter => 'postgresql',
:host => '/var/run/postgresql',
:encoding => 'utf8',
:username => 'roxana',
:password => 'cokolada',
:database => 'rorex'
)Co jednotlivé parametry znamenají? Jako první popíši parametr :adapter. Tento specifikuje databázový stroj/server v kterém jsou naše data. Nejběžněji používané SQL servery jsou postgresql, mysql a sqlite. Existují ovšem adaptéry pro další databázové servery.
:adapter => 'sqlite' # postgresql/mysql/sqlite/...
Další parametry jsou specifické pro použitá databázový adapter. Většina sql serverů má těchto pár parametrů:
:host — adresa počítače na kterém SQL server běží, nebo cesta k socketu beží-li na stejném stroji:port — port na kterém očekává SQL server spojení, pokud není použit standardní:database — název databáze:username, :password — přihlašovací jméno a heslo do databázeVytvoření databáze v PostgreSQL serveru
#sudo -u postgres psql -d template1template1=#CREATE USER pavel WITH ENCRYPTED PASSWORD 'tomasek' NOCREATEDB NOCREATEUSER;template1=#CREATE DATABASE gblog WITH OWNER=pavel TEMPLATE=template0 ENCODING='utf-8';
K takto vytvořené databázi potřebujeme přístup. To uděláme úpravou konfiguračního souboru
FIXME:Ukázka připojení k postgresql serveru. K takto vytvořené databázi musíme zajistit přístup. To se provede dopsáním následujících řádku do pg_hba.conf:
local gblog pavel md5
# /etc/init.d/postgresql/7.4 reloadVytvoření databáze v MySQL serveru
#sudo - mysql mysqlmysql>CREATE DATABASE rorex;mysql>CREATE DATABASE rorexdev;mysql>CREATE DATABASE rorextest;mysql>GRANT ALL PRIVILEGES ON rorex.* TO 'roxana'@'localhost' IDENTIFIED BY 'cokolada';mysql>GRANT ALL PRIVILEGES ON rorexdev.* TO 'roxana'@'localhost' IDENTIFIED BY 'cokolada';mysql>GRANT ALL PRIVILEGES ON rorextest.* TO 'roxana'@'localhost' IDENTIFIED BY 'cokolada';
FIXME:Ukázka připojení k mysql serveru.
FIXME:Ukázka použití sqlite.
