Obwohl die Standarddatenbank SQLite3 hervorragend mit Ruby on Rails funktioniert , sollten wir es in einigen Fällen nicht verwenden. Wenn beispielsweise eine große Anzahl von Benutzern gleichzeitig auf Ihre Rails-Anwendung zugreift, wird SQLite nicht empfohlen. Wir sollten robustere Datenbanken wie MySQL oder PostgreSQL ausprobieren, die Skalierbarkeit, Parallelität, Zentralisierung und Kontrolle bieten. Wir wussten bereits, wie man MySQL mit Rails-Anwendung verwendet . Heute werden wir sehen, wie man PostgreSQL mit der Ruby on Rails-Anwendung in Ubuntu Linux verwendet.
Voraussetzungen
Ich gehe davon aus, dass Sie bereits das neueste Ruby on Rails auf Ihrem Linux-System installiert haben. Wenn nicht, lesen Sie die folgende Anleitung.
- So installieren Sie Ruby On Rails unter Linux
1. Installieren Sie PostgreSQL
Um PostgreSQL in Debian, Ubuntu und seinen Derivaten zu installieren, führen Sie Folgendes aus:
$ sudo apt install postgresql postgresql-contrib libpq-dev
Dieser Befehl installiert PostgreSQL zusammen mit allen erforderlichen Abhängigkeiten. Hier die libpq-dev
ist eine PostgreSQL-Bibliothek, die es den Client-Programmen ermöglicht, Abfragen an den PostgreSQL-Backend-Server weiterzuleiten und die Ergebnisse dieser Abfragen zu empfangen. Diese Bibliothek ist erforderlich, um eine Verbindung zu PostgreSQL herzustellen, wenn Sie eine Rails-Anwendung einrichten.
Stellen Sie sicher, dass der postgresql-Dienst gestartet und beim Start aktiviert ist:
$ sudo systemctl start postgresql
$ sudo systemctl enable postgresql
Um den aktuellen Status des postgresql-Dienstes anzuzeigen, führen Sie Folgendes aus:
$ systemctl status postgresql
1.1. Neue Datenbankrolle erstellen
Wir benötigen einen dedizierten Datenbankbenutzer (Rolle), um Datenbanken oder unsere Rails-Anwendung zu erstellen und zu konfigurieren.
Um eine neue Datenbankrolle in PostgreSQL zu erstellen, führen Sie den folgenden Befehl von Ihrem Terminal aus:
$ sudo -u postgres createuser -s ostechnix -P
Hier,
sudo -u postgres
- ermöglicht es Ihnen, den Befehl überpostgres
auszuführen Konto.createuser -s ostechnix
- Erstellen Sie eine neue Rolle namensostechnix
mit Superuser-Rechten.-P
- fordert Sie auf, das Passwort für die neue Rolle einzugeben.
2. Verwenden Sie PostgreSQL mit Ruby on Rails-Anwendung unter Linux
So erstellen Sie eine neue Rails-Anwendung namens ostechnixapp
und PostgreSQL als Standarddatenbank verwenden, führen Sie Folgendes aus:
$ rails new ostechnixapp -d postgresql
Dadurch wird eine Rails-Anwendung namens ostechnixapp
erstellt in einem Verzeichnis namens ostechnixapp
und installieren Sie die bereits in Gemfile
erwähnten Gem-Abhängigkeiten mit bundle install
.
Nach dem Erstellen der ostechnixapp
Anwendung, wechseln Sie in ihr Verzeichnis:
$ cd ostechnixapp/
Bearbeiten Sie die Datenbankkonfigurationsdatei der Anwendung:
$ vi config/database.yml
Unter dem default
Abschnitt, fügen Sie die PosgreSQL-Datenbankrolle und ihr Passwort hinzu, die wir im vorherigen Schritt erstellt haben:
[...] default: &default adapter: postgresql encoding: unicode # For details on connection pooling, see Rails configuration guide # https://guides.rubyonrails.org/configuring.html#database-pooling pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> username: ostechnix password: Password123#@! [...]

Ersetzen Sie den Benutzernamen und sein Passwort durch Ihre eigenen. Drücken Sie ESC
und geben Sie :wq
ein um die Datei zu speichern und zu schließen.
Erstellen Sie nun die neue Datenbank für Ihre Rails-Anwendung mit dem Befehl:
$ rake db:create
Dadurch werden zwei Datenbanken mit dem Namen Ihrer Rails-Anwendung erstellt. Wenn der Anwendungsname beispielsweise ostechnixapp lautet, wird ostechnixapp_development
erstellt und ostechnixapp_test
.
Created database 'ostechnixapp_development' Created database 'ostechnixapp_test'
Sie können es auch überprüfen, ob die Datenbanken erfolgreich von PosgreSQL erstellt wurden.
Melden Sie sich bei PosgreSQL an:
$ sudo -u postgres psql
Führen Sie in der postgresql-Eingabeaufforderung \l
aus um die verfügbaren Datenbanken aufzulisten:
postgres=# \l
Beispielausgabe:
List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges --------------------------+-----------+----------+---------+---------+----------------------- ostechnixapp_development | ostechnix | UTF8 | C.UTF-8 | C.UTF-8 | ostechnixapp_test | ostechnix | UTF8 | C.UTF-8 | C.UTF-8 | postgres | postgres | UTF8 | C.UTF-8 | C.UTF-8 | template0 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (5 rows) postgres=#

Verlassen Sie die PostgreSQL-Eingabeaufforderung, indem Sie \q
eingeben .
postgres=# \q
Starten Sie nun Ihren Rails-Webserver mit dem Befehl:
$ rails server -b 0.0.0.0
Dadurch wird Ihre Rails-Anwendung auf dem Standardport 3000
gestartet . Hier haben wir das Argument -b 0.0.0.0
übergeben um von jedem Computer im lokalen Netzwerk aus auf die Rails-Anwendung zugreifen zu können.
Öffnen Sie Ihren Webbrowser und greifen Sie auf Ihre Rails-Testseite zu, indem Sie zur URL navigieren:http://ip-address:3000
.

Wenn Sie einen anderen Port verwenden möchten, übergeben Sie -p Flag zusammen mit der Portnummer wie unten:
$ rails server -b 0.0.0.0 -p 8080
Jetzt kann auf die Rails-Anwendung über diese URL zugegriffen werden:http://ip-address:8080
.
3. Rails-Anwendung löschen
Wenn Sie die Standarddatenbank SQLite verwendet haben, können Sie die Rails-Anwendung löschen, indem Sie einfach ihr App-Verzeichnis löschen.
$ rm -fr ostechnixapp
Wenn Sie PostgreSQL verwendet haben, müssen Sie zuerst die zugehörigen Datenbanken Ihrer Anwendung mit folgendem Befehl löschen:
$ rake db:drop
Und dann das Anwendungsverzeichnis löschen:
$ rm -fr ostechnixapp
Schlussfolgerung
Jetzt wissen Sie, wie Sie eine Rails-Anwendung mit PostgreSQL als Datenbank erstellen. Wie ich bereits erwähnt habe, müssen Sie PostgreSQL oder MySQL verwenden, wenn Ihre Anwendung von einer großen Anzahl von Benutzern aktiv verwendet wird. Dies kann auch nützlich sein, wenn Sie die Datenbank in Zukunft skalieren oder Ihre Datenbank von einem entfernten System aus verwalten möchten.
Verwandte Lektüre:
- Datenbankverbindung mit Umgebungsvariable in Rails konfigurieren