Ruby on Rails - Konfiguracja bazy danych
Zanim zaczniesz od tego rozdziału, upewnij się, że serwer bazy danych jest uruchomiony i działa. Ruby on Rails zaleca utworzenie trzech baz danych - po jednej dla środowiska programistycznego, testowego i produkcyjnego. Zgodnie z konwencją ich imiona powinny brzmieć -
- library_development
- library_production
- library_test
Powinieneś zainicjować wszystkie trzy z nich i utworzyć dla nich użytkownika i hasło z pełnymi uprawnieniami do odczytu i zapisu. Używamyroot identyfikator użytkownika dla naszej aplikacji.
Konfiguracja bazy danych dla MySQL
W MySQL używamy rozszerzenia rootidentyfikator użytkownika dla naszej aplikacji. Sesja konsoli MySQL, w której to robisz, wygląda mniej więcej tak:
mysql> create database library_development;
Query OK, 1 row affected (0.01 sec)
mysql> grant all privileges on library_development.*
to 'root'@'localhost' identified by 'password';
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
Możesz zrobić to samo dla dwóch kolejnych baz danych library_production i library_test.
Konfigurowanie database.yml
W tym momencie musisz poinformować Railsy o nazwie użytkownika i haśle do baz danych. Robisz to w plikudatabase.yml, dostępne w library\configw podkatalogu aplikacji Rails, którą utworzyłeś. Ten plik zawiera sekcje konfiguracji na żywo dla baz danych MySQL. W każdej z sekcji, których używasz, musisz zmienić linię nazwy użytkownika i hasła, aby odzwierciedlić uprawnienia w utworzonych bazach danych.
Kiedy skończysz, powinno wyglądać mniej więcej tak -
development:
adapter: mysql
database: library_development
username: root
password: [password]
host: localhost
test:
adapter: mysql
database: library_test
username: root
password: [password]
host: localhost
production:
adapter: mysql
database: library_production
username: root
password: [password]
host: localhost
Konfiguracja bazy danych dla PostgreSQL
Domyślnie PostgreSQL nie udostępnia żadnych użytkowników. Musimy stworzyć nowych użytkowników. Użyj następującego polecenia, aby utworzyć użytkownika o tej nazwierubyuser.
tp> sudo -u postgres createuser rubyuser -s
Jeśli chcesz utworzyć hasło dla nowego użytkownika, użyj następującego polecenia.
tp> sudo -u postgres psql
postgres=# \password rubyuser
Użyj następującego polecenia, aby utworzyć bazę danych library_development.
postgres=# CREATE DATABASE library_development OWNER rubyuser;
CREATE DATABASE
Użyj następującego polecenia, aby utworzyć bazę danych library_production.
postgres=# CREATE DATABASE library_production OWNER rubyuser;
CREATE DATABASE
Użyj następującego polecenia, aby utworzyć bazę danych library_test.
postgres=# CREATE DATABASE library_test OWNER rubyuser;
CREATE DATABASE
naciśnij Ctrl+D aby zakończyć PosgreSQL.
Konfigurowanie database.yml
W tym momencie musisz podać Railsom nazwę użytkownika i hasło do baz danych. Robisz to w plikudatabase.yml, dostępne w library\configw podkatalogu aplikacji Rails, którą utworzyłeś. Ten plik zawiera sekcje konfiguracji na żywo dla baz danych PostgreSQL. W każdej sekcji musisz zmienić linię nazwy użytkownika i hasła, aby odzwierciedlić uprawnienia w utworzonych bazach danych.
Kiedy skończysz, powinno wyglądać następująco -
default: &default
adapter: postgresql
encoding: unicode
development:
adapter: postgresql
encoding: unicode
database: library_development
username: rubyuser
password: <Password for rubyuser>
test:
adapter: postgresql
encoding: unicode
database: library_test
username: rubyuser
password: <Password for rubyuser>
production:
adapter: postgresql
encoding: unicode
database: library_production
username: rubyuser
password: <Password for rubyuser>
Co jest następne?
Kolejne dwa rozdziały wyjaśniają, jak modelować tabele bazy danych i jak zarządzać nimi za pomocą migracji Rails.