Wie Sie PostgreSQL mit Ihrer Ruby on Rails-Anwendung unter Ubuntu 16.04 verwenden können

Erfahren Sie, wie Sie PostgreSQL mit Ihrer Ruby on Rails-Anwendung anstelle der standardmäßigen SQLite-Datenbank verwenden können. SQLite ist ein einfach zu konfigurierendes, leichtes Produkt, das standardmäßig mit Ruby on Rails ausgeliefert wird. PostgreSQL ist jedoch eine robustere Lösung, die erweiterte Funktionen, Skalierung und Stabilität bietet, was es für Ihr Ruby on Rails-Projekt besser geeignet machen kann.

Anforderungen

  • Ein Cloud Server unter Linux (Ubuntu 16.04)
  • PostgreSQL installiert und läuft.
  • Ruby on Rails installiert und läuft.
  • Eine grundlegende Vertrautheit mit Ruby on Rails.
Hinweis

Alle Befehle in diesem Tutorial müssen als Rails-Benutzer ausgegeben werden. Dies ist das Benutzerkonto, mit dem Sie Ruby on Rails installiert und ausgeführt haben.

Erstellen eines PostgreSQL-Benutzers

Erstellen Sie einen PostgreSQL-Benutzer, damit Ihre Ruby on Rails-Anwendung eine Verbindung zur PostgreSQL-Datenbank herstellen kann:

sudo -u postgres createuser -s [username]
Hinweis

Dies sollte derselbe Benutzername sein, mit dem Sie Ruby on Rails installiert und ausgeführt haben.

Um beispielsweise den PostgreSQL-Benutzernamen jdoe zu erstellen, lautet der Befehl:

sudo -u postgres createuser -s jdoe

Um ein Passwort für diesen Benutzer festzulegen, melden Sie sich am PostgreSQL-Kommandozeilen-Client an:

sudo -u postgres psql

Geben Sie an der PostgreSQL-Eingabeaufforderung den folgenden Befehl ein, um das Passwort festzulegen:

\password [username]

Um beispielsweise das Passwort für jdoe festzulegen, lautet der Befehl:

\password jdoe

Das Passwort eingeben und bestätigen. Verlassen Sie dann den PostgreSQL-Client:

\q

vServer (VPS) von IONOS

Günstige und starke VPS für Webserver, Mailserver und eigene Anwendungen mit persönlichem Berater und 24/7 Support!

100 % SSD-Speicher
Bereit in 55 Sek.
SSL Zertifikat

Konfigurieren der Rails-Anwendung

Der nächste Schritt ist die Aktivierung der PostgreSQL-Unterstützung in Ihrer Ruby on Rails-Anwendung.

Erstellen der Anwendung

Erstellen Sie zunächst die Anwendung mit dem Flag -d postgresql:

rails new [application name] -d postgresql

Beispielsweise lautet der Befehl zum Erstellen einer Anwendung mit dem Namen my-app:

rails new my-app -d postgresql

Das Flag -d teilt Ruby on Rails mit, dass Sie PostgreSQL für diese Anwendung verwenden werden.

Fügen Sie den PostgreSQL-Benutzernamen und das Passwort hinzu.

Als nächstes wechseln Sie in das Verzeichnis, das Ruby on Rails für die Anwendung erstellt hat:

cd my-app

Bearbeiten Sie die Datei config/database.yml:

nano config/database.yml

Scrollen Sie nach unten zu dem Abschnitt, der lautet:

# The specified database role being used to connect to postgres.
# To create additional roles in postgres see `$ createuser --help`.
# When left blank, postgres will use the default role. This is
# the same name as the operating system user that initialized the database.
#username: my-app2

Löschen Sie das # in der letzten Zeile, um den Kommentar aufzuheben, und ändern Sie den Benutzernamen in den von Ihnen erstellten:

# The specified database role being used to connect to postgres.
# To create additional roles in postgres see `$ createuser --help`.
# When left blank, postgres will use the default role. This is
# the same name as the operating system user that initialized the database.
username: jdoe

Löschen Sie im nächsten Abschnitt die #, um die letzte Zeile zu entfernen, und fügen Sie das Passwort für den jdoe-Benutzer hinzu:

# The password associated with the postgres role (username).
password: XPmMxZf

Speichern und beenden Sie die Datei.

Erstellen der neuen Anwendungsdatenbanken

Verwenden Sie den folgenden Rake-Befehl, um die Datenbanken für Ihre Anwendung zu erstellen:

rake db:create

Testen der Konfiguration

Um die Konfiguration zu testen, starten Sie einfach die rails-Anwendung und überprüfen Sie sie in einem Browser.

Verwenden Sie den Befehl aus dem Verzeichnis der Anwendung:

bin/rails s --binding=0.0.0.0 
Hinweis

Wenn Sie den Server an 0.0.0.0.0.0 binden, können Sie die Anwendung mit der öffentlichen IP-Adresse Ihres Servers anzeigen.

Der Server sollte antworten:

[user@localhost my-app]$ bin/rails server
=> Booting Puma
=> Rails 5.0.0.1 application starting in development on http://localhost:3000
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.6.0 (ruby 2.3.1-p112), codename: Sleepy Sunday Serenity
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://localhost:3000
Use Ctrl-C to stop

Wechseln Sie zu einem Browser und besuchen Sie "http://your-ip-address:3000". Wenn deine IP-Adresse beispielsweise 198.162.0.1 lautet, gehst du zu http://198.162.0:3000.

Wenn alles in Ordnung ist und Rails in der Lage ist, sich mit PostgreSQL zu verbinden, sehen Sie die standardmäßige Rails-Grußseite.