Unter allen verfügbaren Datenbank-Engines ist PostgreSQL eine der beliebtesten. Es ist ein bekanntes Open-Source-Datenbanksystem, das für seine Zuverlässigkeit, robusten Funktionen und Leistung bekannt ist. Da PostgreSQL eine beliebte Wahl ist, wird es von fast allen gängigen Web-Frameworks unterstützt. Ähnlich wie seine Konkurrenten MySQL und SQLite hat auch PostgreSQL seine Stärken und Schwächen.
Ruby on Rails ist ein beliebtes Web-Framework, geschrieben in Ruby. Es ist ein datenbankunabhängiges Framework, was bedeutet, dass es mit einer Vielzahl von Datenbanken arbeiten kann. Standardmäßig setzt Rails SQL für Datenbankfunktionalitäten voraus. Es unterstützt jedoch auch die PostgreSQL-Integration.
Dieses Tutorial wird Sie durch den Prozess der Konfiguration von PostgreSQL für Ihre Ruby on Rails-Anwendung führen.
Ruby on Rails und PostgreSQL
Sowohl PostgreSQL und Ruby on Rails sind auf jeder UNIX/Linux-Distribution verfügbar. Sie sollten über die Standard-Paketserver verfügbar sein.
Eine alternative Methode ist die Verwendung von RVM (Ruby Version Manager). Es ist ein spezielles Tool zur Verwaltung von Ruby on Rails-Installationen. Der Vorteil dieses Ansatzes ist, dass RVM eine lokale Installation von Ruby on Rails erstellt. Es kann auch mehrere Versionen von Ruby verwalten und nahtlos zwischen ihnen wechseln. Hier ist ein Tutorial, das die Schritte zur Installation von Ruby on Rails mit RVM auf Ubuntu im Detail beschreibt.
Was PostgreSQL betrifft, werfen Sie einen Blick auf diese Kurzanleitung zur Installation und Konfiguration von PostgreSQL auf Ubuntu.
-
RVM installieren
Der Installationsprozess von RVM ist dank des von RVM angebotenen Installationsskripts ziemlich unkompliziert. Das Skript ist so konzipiert, dass es das Linux-System automatisch erkennt und dann alle erforderlichen Pakete herunterlädt und installiert. Wir benötigen die RVM-GPG-Schlüssel, um Pakete zu verifizieren. Dies stellt sicher, dass die empfangenen Pakete nicht gefälscht sind. Fügen Sie zuerst die RVM-GPG-Schlüssel hinzu:
|
1 |
gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB |

Führen Sie dann das RVM-Installationsskript aus:
|
1 |
curl -sSL https://get.rvm.io | bash -s stable --rails |

Überprüfen Sie abschließend die Installation:
|
1 |
type rvm | head -n 1 |
-
Rails installieren
Wir können nun RVM verwenden, um zusätzliche Komponenten zu installieren. Installieren Sie das Rails-Framework mit RVM:
|
1 |
gem install rails |
-
PostgreSQL installieren
Der nächste Schritt erfordert, dass PostgreSQL bereits auf dem System vorinstalliert ist. Standardmäßig ist der einfachste Weg, PostgreSQL zu installieren, die Verwendung des Standard-Paketmanagers. Er ist für alle gängigen Linux-Distributionen verfügbar. Schauen Sie sich die PostgreSQL-Download-Seite für alle verfügbaren Installationsmethoden an. Unter Ubuntu konfigurieren die folgenden Befehle das PostgreSQL-Repository und installieren es sofort:
|
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 |

Um die PostgreSQL-Unterstützung zu aktivieren, müssen wir das pg Gem installieren. Es ermöglicht die Schnittstellenbildung mit PostgreSQL aus Ruby-Code:
|
1 |
gem install pg |
-
PostgreSQL konfigurieren
Nach der Installation konfigurieren wir die Tools, die wir für unsere Projekte benötigen. Wechseln Sie zuerst zum PostgreSQL-Benutzer:
|
1 |
su - postgres |
Greifen Sie auf die PostgreSQL-Shell zu:
|
1 |
psql |

Im Kontext von PostgreSQL erstellen wir nun eine neue Rolle (klassisch als Benutzer bekannt). PostgreSQL hat sein eigenes Format für Rollen und Berechtigungen. Vergessen Sie nicht, einen geeigneten Benutzernamen und ein starkes Passwort zu verwenden:
|
1 |
create role <username> with createdb login password 'password123'; |
Eine Rails-App erstellen
Weisen Sie Rails an, eine neue Rails-App zu erstellen, die für die Verwendung von PostgreSQL als Datenbank konfiguriert ist:
|
1 |
rails new <app_name> --database=postgresql |

Dadurch wird ein neues Verzeichnis mit dem App-Benutzernamen erstellt. Rails erwartet im Allgemeinen, dass der Benutzername der Datenbank und der App-Name identisch sind. Der nächste Schritt besteht darin, die Rails-Datenbankkonfiguration zu konfigurieren. Die Konfigurationsdatei befindet sich an folgendem Ort:
|
1 |
RAILS_ROOT/config/database.yml |
Die Datei database.yml enthält die Daten, die die entsprechende Datenbank für die aktuelle Rails-Umgebung beschreiben. Wie der Dateiname vermuten lässt, verwendet sie YAML. YAML ist ein benutzerfreundlicher Datenserialisierungsstandard für alle Programmiersprachen.
Standardmäßig erwartet Rails unterschiedliche Datenbanken für verschiedene Umgebungen, zum Beispiel development, test, und production. Dies ist in verschiedenen Situationen nützlich, beispielsweise leert und erstellt Rails die test -Datenbank jedes Mal neu, wenn ein Rails-Test ausgeführt wird.
Hier ist ein Beispiel für eine database.yml die die development und test -Datenbanken enthält:
|
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 |

Es ist nun an der Zeit, die Änderungen wirksam werden zu lassen. Der folgende Befehl bereitet die erforderlichen Datenbanken vor, die in database.yml beschrieben sind. Jede Datenbank hat ihre eigenen Benutzer und verfügt über schema_migrations -Tabellen. Die Tabelle ist für die Daten- und Schema-Migration erforderlich:
|
1 |
rake db:setup |
Dieser Schritt schlägt fehl, wenn die PostgreSQL-Konfigurationsdatei pg_hba.conf fehlerhafte Konfigurationen enthält. Die Datei befindet sich an folgendem Ort:
|
1 |
sudo cat /etc/postgresql/13/main/pg_hba.conf |
Die folgende Zeile ist das Ziel. Anstelle von peer, sollte die Authentifizierungsmethode md5:
|
1 |
local all all peer |
Ändern Sie die Zeile:
|
1 |
local all all md5 |

Damit die Änderungen wirksam werden, müssen Sie den PostgreSQL-Dienst neu starten:
|
1 |
sudo systemctl restart postgresql |
Führen Sie anschließend das Datenbank-Setup erneut aus:
|
1 |
rake db:setup |
Rails ausführen
Das Ausführen des Rails-Servers erfordert die folgende zusätzliche Komponente. Beachten Sie, dass Sie hierfür Node.js installiert benötigen (mit yarn):
|
1 |
rails webpacker:install |

Die Rails-App sollte nun startbereit sein. Starten Sie den Rails-Server:
|
1 |
rails server |

Der Server sollte unter der folgenden URL erreichbar sein. Er führt zur Rails-Landingpage:
|
1 |
http://localhost:3000 |
Um die Landingpage spannender zu gestalten, erstellen Sie ein Scaffold:
|
1 |
rails g scaffold Post title:string body:text |

|
1 |
rake db:migrate |
Schließlich starten Sie den Server und rufen Sie die URL erneut auf. Wir können nun Beiträge verwalten (Beiträge erstellen, bearbeiten und löschen).
Fazit
Dies ist eine grundlegende Einrichtung von Ruby on Rails mit PostgreSQL. Es gibt eine offizielle Anleitung für den Einstieg, die Ihnen bei der weiteren Nutzung von Rails helfen wird. Die von uns erstellte Beispiel-App verwendet PostgreSQL. Auf diese Weise können Sie jede App erstellen, die PostgreSQL für ihre Funktionen nutzt.
Viel Spaß beim Programmieren!


Kommentare
Noch keine Kommentare. Schreiben Sie den ersten.