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 reload
Vytvoř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.