47.11.1. Přístup k SQL serveru

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ů:

Vytvoření databáze v PostgreSQL serveru

# sudo -u postgres psql -d template1
template1=# 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 mysql
mysql> 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.

Licence Creative Commons
Tento dokument Ruby, jehož autorem je Radek Hnilica, podléhá licenci Creative Commons Uveďte autora-Nevyužívejte dílo komerčně-Zachovejte licenci 3.0 Česká republika .