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.