Jak używać PostgreSQL z aplikacją Ruby on Rails na Ubuntu 20.04

Photo of author

By maciekx

Wprowadzenie

PostgreSQL to zaawansowany system zarządzania bazami danych o otwartym kodzie źródłowym, ceniony za swoją solidność, elastyczność i szeroki wachlarz funkcji. Jest popularnym wyborem w wielu projektach, w tym w aplikacjach tworzonych przy użyciu Ruby on Rails. Rails, będący frameworkiem MVC (Model-View-Controller) dla języka Ruby, znacząco upraszcza i przyspiesza proces tworzenia aplikacji internetowych.

Integracja PostgreSQL z aplikacją Ruby on Rails niesie ze sobą wiele zalet, w tym:

  • Wytrzymała i skalowalna baza danych: PostgreSQL potrafi efektywnie zarządzać dużymi zbiorami danych i gwarantuje wysoką dostępność, co sprawia, że idealnie nadaje się do obsługi aplikacji o dużym natężeniu ruchu.
  • Bogaty zestaw możliwości: PostgreSQL oferuje rozbudowaną gamę funkcji, takich jak transakcje ACID, indeksowanie pełnotekstowe oraz specjalistyczne typy danych.
  • Prosta integracja z Rails: Rails udostępnia wbudowane narzędzia umożliwiające łatwe łączenie z bazami danych PostgreSQL, co upraszcza konfigurację i zarządzanie bazą.

Instalacja PostgreSQL

Aby przeprowadzić instalację PostgreSQL na systemie Ubuntu 20.04, należy wykonać poniższe kroki:

1. Aktualizacja pakietów

sudo apt update

2. Instalacja PostgreSQL wraz z dodatkami

sudo apt install postgresql postgresql-contrib

3. Tworzenie dedykowanej bazy danych dla aplikacji Rails

Po zakończeniu instalacji PostgreSQL, należy utworzyć nową bazę danych, która będzie wykorzystywana przez aplikację Rails:

sudo -u postgres createuser -SDR rails
sudo -u postgres createdb -O rails rails_database

Należy pamiętać o zastąpieniu „rails_database” rzeczywistą nazwą, która ma zostać przypisana bazie danych.

Konfiguracja Rails

Aby skonfigurować aplikację Rails do pracy z bazą danych PostgreSQL, należy wykonać następujące czynności:

1. Utworzenie pliku konfiguracyjnego database.yml

touch config/database.yml

2. Dodanie konfiguracji bazy danych

W utworzonym pliku database.yml umieść poniższy kod:

default: &default
  adapter: postgresql
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  timeout: 5000
  database: rails_database
  username: rails
  password:
  host: localhost

development:
  <<: *default

test:
  <<: *default
  database: rails_database_test

Upewnij się, że wartość „rails_database” odpowiada nazwie bazy danych, którą utworzono wcześniej.

Migracje bazy danych

Po skonfigurowaniu pliku database.yml należy uruchomić migracje, które utworzą strukturę bazy danych:

rails generate migration CreateArticles
rails db:migrate

Wykorzystanie PostgreSQL w aplikacji Rails

Po przeprowadzeniu migracji, można zacząć korzystać z PostgreSQL w aplikacji Rails. Poniżej znajdują się przykłady podstawowych operacji:

1. Tworzenie nowego rekordu

Article.create(title: "Mój pierwszy artykuł", body: "To jest treść mojego artykułu.")

2. Pobieranie rekordu

article = Article.find(1)

3. Aktualizacja rekordu

article.update(title: "Zaktualizowany tytuł")

Zaawansowane ustawienia

1. Konfiguracja opcji połączenia z bazą danych

Sposób, w jaki aplikacja Rails łączy się z PostgreSQL, można modyfikować poprzez zmianę ustawień w database.yml. Na przykład, aby ustawić limit czasu połączenia na 10 sekund, należy dodać:

timeout: 10000

2. Wykorzystanie rozszerzeń PostgreSQL

PostgreSQL oferuje szeroką gamę rozszerzeń, które mogą rozbudować jego funkcjonalność. Przykładowo, aby aktywować indeksowanie pełnotekstowe, należy zainstalować rozszerzenie „pg_trgm” i dodać poniższy fragment konfiguracji:

pg_trgm:
  adapter: postgresql
  database: rails_database
  username: rails
  password:
  host: localhost
  extensions: ["pg_trgm"]

3. Ustawienia puli połączeń

Domyślnie, Rails tworzy jedną pulę połączeń dla każdej z baz danych. Ilość połączeń w puli można dostosować, zmieniając wartość ustawienia pool w database.yml.

Podsumowanie

Integracja PostgreSQL z aplikacją Ruby on Rails umożliwia tworzenie solidnych i łatwo skalowalnych aplikacji internetowych. PostgreSQL oferuje rozbudowany zestaw funkcji, a Rails zapewnia proste w obsłudze narzędzia do łączenia i zarządzania bazą danych. Połączenie tych dwóch technologii pozwala tworzyć wydajne i zaawansowane aplikacje.

Najczęściej zadawane pytania

1. Jaka jest zasadnicza różnica między PostgreSQL a MySQL?

PostgreSQL i MySQL to dwa popularne systemy zarządzania relacyjnymi bazami danych. PostgreSQL jest szczególnie ceniony za swoją niezawodność, elastyczność i bogactwo funkcji, podczas gdy MySQL jest znany z prostoty użytkowania i dużej wydajności.

2. Jak poprawnie zainstalować rozszerzenie PostgreSQL?

Aby zainstalować rozszerzenie PostgreSQL, należy wykonać następujące czynności:

sudo apt install postgresql-contrib
psql -d baza_danych -c "CREATE EXTENSION nazwa_rozszerzenia"

3. Jak przetestować połączenie z bazą danych PostgreSQL?

Aby zweryfikować poprawne połączenie z bazą danych PostgreSQL, należy wykonać następujące kroki:

psql -U nazwa_użytkownika -d nazwa_bazy

4. Jak skonfigurować nowego użytkownika bazy danych PostgreSQL?

Aby utworzyć nowego użytkownika bazy danych PostgreSQL, należy wykonać następujące kroki:

sudo -u postgres createuser -SDR nazwa_użytkownika
sudo -u postgres psql -c "ALTER USER nazwa_użytkownika WITH PASSWORD 'hasło';"

5. Jak utworzyć nową bazę danych PostgreSQL?

Aby utworzyć nową bazę danych PostgreSQL, należy użyć następującej komendy:

sudo -u postgres createdb nazwa_bazy

6. Jak zmienić hasło istniejącego użytkownika bazy danych PostgreSQL?

Aby zmienić hasło użytkownika bazy danych PostgreSQL, należy wykonać poniższą komendę:

sudo -u postgres psql -c "ALTER USER nazwa_użytkownika WITH PASSWORD 'nowe_hasło';"

7. Jak usunąć istniejącą bazę danych PostgreSQL?

Aby usunąć bazę danych PostgreSQL, należy skorzystać z poniższej komendy:

sudo -u postgres dropdb nazwa_bazy

8. Jak usunąć użytkownika bazy danych PostgreSQL?

Aby usunąć użytkownika bazy danych PostgreSQL, należy wykonać poniższą komendę:

sudo -u postgres dropuser nazwa_użytkownika


newsblog.pl