GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So verwenden Sie PostgreSQL mit der Ruby On Rails-Anwendung

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 über postgres auszuführen Konto.
  • createuser -s ostechnix - Erstellen Sie eine neue Rolle namens ostechnix 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

Linux
  1. Wie ich Vagrant mit libvirt verwende

  2. Erstellen Sie mit Ruby eine Linux-Desktopanwendung

  3. So richten Sie eine Umgebung für die Ruby on Rails-Anwendung ein

  4. So installieren Sie Ruby on Rails (RoR) mit PostgreSQL unter Ubuntu 16.04

  5. So verwenden Sie den Export mit Python unter Linux

So installieren Sie Ruby on Rails unter Debian 9

So installieren Sie Ruby on Rails unter Debian 10

So installieren Sie Ruby on Rails unter CentOS 7

So installieren Sie Ruby on Rails unter CentOS 8

So installieren Sie Ruby on Rails unter Ubuntu 16.04

So installieren Sie Ruby on Rails auf Ubuntu 20.04 mit RVM