Erfahren Sie, wie Sie Post­greS­QL mit Ihrer Ruby on Rails-Anwendung anstelle der stan­dard­mä­ßi­gen SQLite-Datenbank verwenden können. SQLite ist ein einfach zu kon­fi­gu­rie­ren­des, leichtes Produkt, das stan­dard­mä­ßig mit Ruby on Rails aus­ge­lie­fert wird. Post­greS­QL ist jedoch eine robustere Lösung, die er­wei­ter­te Funk­tio­nen, Ska­lie­rung und Sta­bi­li­tät bietet, was es für Ihr Ruby on Rails-Projekt besser geeignet machen kann.

An­for­de­run­gen

  • Ein Cloud Server unter Linux (Ubuntu 16.04)
  • Post­greS­QL in­stal­liert und läuft.
  • Ruby on Rails in­stal­liert und läuft.
  • Eine grund­le­gen­de Ver­traut­heit mit Ruby on Rails.
Hinweis

Alle Befehle in diesem Tutorial müssen als Rails-Benutzer aus­ge­ge­ben werden. Dies ist das Be­nut­zer­kon­to, mit dem Sie Ruby on Rails in­stal­liert und aus­ge­führt haben.

Erstellen eines Post­greS­QL-Benutzers

Erstellen Sie einen Post­greS­QL-Benutzer, damit Ihre Ruby on Rails-Anwendung eine Ver­bin­dung zur Post­greS­QL-Datenbank her­stel­len kann:

sudo -u postgres createuser -s [username]
Hinweis

Dies sollte derselbe Be­nut­zer­na­me sein, mit dem Sie Ruby on Rails in­stal­liert und aus­ge­führt haben.

Um bei­spiels­wei­se den Post­greS­QL-Be­nut­zer­na­men jdoe zu erstellen, lautet der Befehl:

sudo -u postgres createuser -s jdoe

Um ein Passwort für diesen Benutzer fest­zu­le­gen, melden Sie sich am Post­greS­QL-Kom­man­do­zei­len-Client an:

sudo -u postgres psql

Geben Sie an der Post­greS­QL-Ein­ga­be­auf­for­de­rung den folgenden Befehl ein, um das Passwort fest­zu­le­gen:

\password [username]

Um bei­spiels­wei­se das Passwort für jdoe fest­zu­le­gen, lautet der Befehl:

\password jdoe

Das Passwort eingeben und be­stä­ti­gen. Verlassen Sie dann den Post­greS­QL-Client:

\q
vServer / VPS
VPS un­schlag­bar günstig auf Dell En­ter­pri­se Servern
  • 1 Gbit/s, un­be­grenzt Traffic & mehr Cores
  • Min­des­tens 99,99% Ver­füg­bar­keit & ISO-zer­ti­fi­zier­te Re­chen­zen­tren
  • Aus­ge­zeich­ne­ter 24/7 Premium-Support mit per­sön­li­chem Berater

Kon­fi­gu­rie­ren der Rails-Anwendung

Der nächste Schritt ist die Ak­ti­vie­rung der Post­greS­QL-Un­ter­stüt­zung in Ihrer Ruby on Rails-Anwendung.

Erstellen der Anwendung

Erstellen Sie zunächst die Anwendung mit dem Flag -d post­gres­ql:

rails new [application name] -d postgresql

Bei­spiels­wei­se 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 Post­greS­QL für diese Anwendung verwenden werden.

Fügen Sie den Post­greS­QL-Be­nut­zer­na­men und das Passwort hinzu.

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

cd my-app

Be­ar­bei­ten 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 auf­zu­he­ben, und ändern Sie den Be­nut­zer­na­men in den von Ihnen er­stell­ten:

# 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 An­wen­dungs­da­ten­ban­ken

Verwenden Sie den folgenden Rake-Befehl, um die Da­ten­ban­ken für Ihre Anwendung zu erstellen:

rake db:create

Testen der Kon­fi­gu­ra­ti­on

Um die Kon­fi­gu­ra­ti­on zu testen, starten Sie einfach die rails-Anwendung und über­prü­fen Sie sie in einem Browser.

Verwenden Sie den Befehl aus dem Ver­zeich­nis 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 öf­fent­li­chen 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 bei­spiels­wei­se 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 Post­greS­QL zu verbinden, sehen Sie die stan­dard­mä­ßi­ge Rails-Grußseite.

Zum Hauptmenü