Spośród wszystkich dostępnych silników baz danych, PostgreSQL jest jednym z najpopularniejszych. To dobrze znany system bazodanowy o otwartym kodzie źródłowym, ceniony za swoją niezawodność, rozbudowane funkcje i wydajność. Ponieważ PostgreSQL jest popularnym wyborem, jest wspierany przez niemal wszystkie główne frameworki webowe. Podobnie jak jego konkurenci MySQL i SQLite, PostgreSQL również ma swoje mocne i słabe strony.
Ruby on Rails to popularny framework webowy napisany w języku Ruby. Jest to framework niezależny od bazy danych, co oznacza, że może współpracować z wieloma różnymi bazami danych. Domyślnie Rails zakłada użycie SQL dla funkcjonalności bazodanowych. Obsługuje jednak również integrację z PostgreSQL.
Ten poradnik przeprowadzi Cię przez proces konfiguracji PostgreSQL dla Twojej aplikacji Ruby on Rails.
Ruby on Rails i PostgreSQL
Zarówno PostgreSQL, jak i Ruby on Rails są dostępne na dowolnej dystrybucji systemu UNIX/Linux. Powinny być one dostępne w domyślnych repozytoriach pakietów.
Alternatywną metodą jest użycie RVM (Ruby Version Manager). Jest to dedykowane narzędzie do zarządzania instalacjami Ruby on Rails. Zaletą tego podejścia jest to, że RVM utworzy lokalną instalację Ruby on Rails. Może również zarządzać wieloma wersjami Ruby i płynnie się między nimi przełączać. Oto poradnik, który szczegółowo opisuje kroki Instalacji Ruby on Rails z RVM na Ubuntu.
Jeśli chodzi o PostgreSQL, zapoznaj się z tym krótkim przewodnikiem dotyczącym instalacji i konfiguracji PostgreSQL na Ubuntu.
-
Instalacja RVM
Proces instalacji RVM jest dość prosty dzięki skryptowi instalacyjnemu oferowanemu przez RVM. Skrypt został zaprojektowany tak, aby automatycznie wykrywać system Linux, a następnie pobierać i instalować wszystkie niezbędne pakiety. Do weryfikacji pakietów potrzebujemy kluczy GPG RVM. Gwarantuje to, że otrzymane pakiety nie są sfałszowane. Najpierw dodaj klucze GPG RVM:
|
1 |
gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB |

Następnie uruchom skrypt instalacyjny RVM:
|
1 |
curl -sSL https://get.rvm.io | bash -s stable --rails |

Na koniec zweryfikuj instalację:
|
1 |
type rvm | head -n 1 |
-
Instalacja Rails
Możemy teraz użyć RVM do zainstalowania dodatkowych komponentów. Zainstaluj framework Rails za pomocą RVM:
|
1 |
gem install rails |
-
Instalacja PostgreSQL
Kolejny krok wymaga wcześniejszego zainstalowania PostgreSQL w systemie. Domyślnie najprostszym sposobem na instalację PostgreSQL jest użycie domyślnego menedżera pakietów. Jest on dostępny dla wszystkich głównych dystrybucji Linuksa. Sprawdź stronę pobierania PostgreSQL w celu zapoznania się ze wszystkimi dostępnymi metodami instalacji. W systemie Ubuntu poniższe polecenia skonfigurują repozytorium PostgreSQL i natychmiast je zainstalują:
|
1 |
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' |

|
1 |
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - |

|
1 |
sudo apt update && sudo apt install postgresql -y |

Aby włączyć obsługę PostgreSQL, musimy zainstalować pg gem. Umożliwia on interakcję z PostgreSQL z poziomu kodu Ruby:
|
1 |
gem install pg |
-
Konfiguracja PostgreSQL
Po instalacji skonfigurujemy narzędzia, których będziemy potrzebować w naszych projektach. Najpierw przełącz się na użytkownika PostgreSQL:
|
1 |
su - postgres |
Uzyskaj dostęp do powłoki PostgreSQL:
|
1 |
psql |

W kontekście PostgreSQL utworzymy teraz nową rolę (klasycznie znaną jako użytkownik). PostgreSQL ma swój własny format ról i uprawnień. Nie zapomnij użyć odpowiedniej nazwy użytkownika i silnego hasła:
|
1 |
create role <username> with createdb login password 'password123'; |
Tworzenie aplikacji Rails
Poleć Rails utworzenie nowej aplikacji Rails skonfigurowanej do używania PostgreSQL jako bazy danych:
|
1 |
rails new <app_name> --database=postgresql |

Spowoduje to utworzenie nowego katalogu o nazwie użytkownika aplikacji. Rails zazwyczaj oczekuje, że nazwa użytkownika bazy danych i nazwa aplikacji będą takie same. Następnym krokiem jest konfiguracja bazy danych Rails. Plik konfiguracyjny znajduje się w następującej lokalizacji:
|
1 |
RAILS_ROOT/config/database.yml |
Plik database.yml zawiera dane opisujące odpowiednią bazę danych dla bieżącego środowiska Rails. Jak sugeruje nazwa pliku, używa on YAML. YAML to przyjazny dla człowieka standard serializacji danych dla wszystkich języków programowania.
Domyślnie Rails oczekuje różnych baz danych dla różnych środowisk, na przykład development, test, oraz production. Jest to przydatne w różnych sytuacjach, na przykład Rails opróżni i przebuduje bazę danych test za każdym razem, gdy uruchamiany jest test Rails.
Oto przykładowy plik database.yml zawierający bazy danych development and test :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
development: adapter: postgresql encoding: unicode database: dummyapp_development pool: 5 username: dummyapp password: password123 test: adapter: postgresql encoding: unicode database: myapp_test pool: 5 username: dummyapp password: password123 |

Nadszedł czas, aby wprowadzić zmiany w życie. Poniższe polecenie przygotuje niezbędne bazy danych opisane w database.yml. Każda baza danych będzie miała własnych użytkowników oraz tabele schema_migrations . Tabela ta jest niezbędna do migracji danych i schematu:
|
1 |
rake db:setup |
Ten krok zakończy się niepowodzeniem, jeśli plik konfiguracyjny PostgreSQL pg_hba.conf zawiera nieprawidłową konfigurację. Plik znajduje się w następującej lokalizacji:
|
1 |
sudo cat /etc/postgresql/13/main/pg_hba.conf |
Docelowa jest następująca linia. Zamiast peer, metodą uwierzytelniania powinno być md5:
|
1 |
local all all peer |
Zmień linię:
|
1 |
local all all md5 |

Aby zmiany weszły w życie, musisz zrestartować usługę PostgreSQL:
|
1 |
sudo systemctl restart postgresql |
Następnie ponownie uruchom konfigurację bazy danych:
|
1 |
rake db:setup |
Running Rails
Uruchomienie serwera Rails wymaga następującego dodatkowego komponentu. Pamiętaj, że do tego potrzebujesz Node.js installed (z yarn):
|
1 |
rails webpacker:install |

Aplikacja Rails powinna być teraz gotowa do uruchomienia. Uruchom serwer Rails:
|
1 |
rails server |

Serwer powinien być dostępny pod następującym adresem URL. Przekieruje on na stronę startową Rails:
|
1 |
http://localhost:3000 |
Aby strona startowa była ciekawsza, utwórz rusztowanie (scaffold):
|
1 |
rails g scaffold Post title:string body:text |

|
1 |
rake db:migrate |
Na koniec uruchom serwer i ponownie przejdź pod ten adres URL. Możemy teraz zarządzać postami (tworzyć, edytować i usuwać posty).
Final Thoughts
To jest podstawowa konfiguracja Ruby on Rails z PostgreSQL. Dostępny jest official getting started guide, który pomoże Ci w dalszym korzystaniu z Rails. Przykładowa aplikacja, którą stworzyliśmy, korzysta z PostgreSQL. W ten sposób możesz stworzyć dowolną aplikację, która wykorzystuje PostgreSQL do swoich funkcjonalności.
Happy computing!


Komentarze
Brak komentarzy. Bądź pierwszy.