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.
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]
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
- Bis zu 1 Gbit/s Bandbreite & unbegrenzt Traffic
- Schneller NVMe-SSD-Speicher
- Kostenlose Plesk Web Host Edition
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
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.