Verwendung von PostgreSQL mit Ihrer Ruby on Rails-Anwendung unter CentOS 7

Einführung

Ruby on Rails verwendet sqlite3 als Standarddatenbank, was in vielen Fällen sehr gut funktioniert, für Ihre Anwendung jedoch möglicherweise nicht ausreicht. Wenn Ihre Anwendung die Skalierbarkeit, Zentralisierung und Steuerung (oder eine andere Funktion) einer Client / Server-SQL-Datenbank erfordert, z. B. https://www.digitalocean.com/community/tutorials/sqlite-vs-mysql-vs-postgresql -a-Vergleich-von-relationalen-Datenbank-Management-Systemen [PostgreSQL oder MySQL], müssen Sie ein paar zusätzliche Schritte ausführen, um es zum Laufen zu bringen.

In diesem Tutorial erfahren Sie, wie Sie eine Ruby on Rails-Entwicklungsumgebung einrichten, mit der Ihre Anwendungen eine PostgreSQL-Datenbank auf einem CentOS 7- oder RHEL-Server verwenden können. Zunächst wird erläutert, wie PostgreSQL installiert und konfiguriert wird. Anschließend zeigen wir Ihnen, wie Sie eine Rails-Anwendung erstellen, die PostgreSQL als Datenbankserver verwendet.

Voraussetzungen

Für dieses Tutorial ist eine funktionierende Ruby on Rails-Entwicklungsumgebung erforderlich. Wenn Sie das noch nicht haben, können Sie dem Tutorial in diesem Link folgen: https://www.digitalocean.com/community/tutorials/how-to-install-ruby-on-rails-with-rbenv-on-centos -7 [So installieren Sie Ruby on Rails mit rbenv unter CentOS 7].

Sie müssen auch Zugriff auf einen Superuser oder ein "+ sudo +" - Konto haben, damit Sie die PostgreSQL-Datenbanksoftware installieren können.

In diesem Handbuch wird auch davon ausgegangen, dass SELinux deaktiviert ist.

Sobald Sie fertig sind, installieren wir PostgreSQL.

Installieren Sie PostgreSQL

Wenn Sie PostgreSQL noch nicht installiert haben, können Sie dies jetzt tun.

Wenn Sie dies noch nicht getan haben, fügen Sie das EPEL-Repository mit folgendem Befehl zu yum hinzu:

sudo yum install epel-release

Installieren Sie den PostgreSQL-Server und seine Entwicklungsbibliotheken:

sudo yum install postgresql-server postgresql-contrib postgresql-devel

PostgreSQL ist installiert, aber wir müssen noch einige grundlegende Einstellungen vornehmen.

Erstellen Sie einen neuen PostgreSQL-Datenbankcluster:

sudo postgresql-setup initdb

Standardmäßig erlaubt PostgreSQL keine Kennwortauthentifizierung. Wir werden dies ändern, indem wir die Konfiguration der hostbasierten Authentifizierung bearbeiten.

Öffnen Sie die HBA-Konfiguration mit Ihrem bevorzugten Texteditor. Wir werden vi verwenden:

sudo vi /var/lib/pgsql/data/pg_hba.conf

Suchen Sie die Zeilen, die wie folgt aussehen, am unteren Rand der Datei:

pg_hba.conf Auszug (original)

host    all             all             127.0.0.1/32            ident
host    all             all             ::1/128                 ident

Dann ersetze "ident" durch "md5", so dass sie so aussehen:

pg_hba.conf Auszug (aktualisiert)

host    all             all             127.0.0.1/32            md5
host    all             all             ::1/128                 md5

Speichern und schließen. PostgreSQL ist jetzt so konfiguriert, dass die Kennwortauthentifizierung zulässig ist.

Starten und aktivieren Sie nun PostgreSQL:

sudo systemctl start postgresql
sudo systemctl enable postgresql

PostgreSQL ist jetzt installiert, Sie sollten jedoch einen neuen Datenbankbenutzer erstellen, den Ihre Rails-Anwendung verwenden wird.

Datenbankbenutzer erstellen

Wechseln Sie zunächst zum Systembenutzer "+ postgres +":

sudo su - postgres

Erstellen Sie mit diesem Befehl einen PostgreSQL-Superuser-Benutzer (ersetzen Sie das hervorgehobene Wort durch Ihren eigenen Benutzernamen):

createuser -s

Um ein Kennwort für den Datenbankbenutzer festzulegen, geben Sie den folgenden Befehl in die PostgreSQL-Konsole ein:

psql

Die PostgreSQL-Konsole wird durch die Eingabeaufforderung + postgres = # + gekennzeichnet. Geben Sie an der PostgreSQL-Eingabeaufforderung den folgenden Befehl ein, um das Kennwort für den von Ihnen erstellten Datenbankbenutzer festzulegen:

\password

Geben Sie an der Eingabeaufforderung Ihr gewünschtes Passwort ein und bestätigen Sie es.

Jetzt können Sie die PostgreSQL-Konsole beenden, indem Sie den folgenden Befehl eingeben:

\q

Nachdem Sie Ihren PostgreSQL-Benutzer eingerichtet haben, kehren Sie zu Ihrem normalen Benutzer zurück:

exit

Erstellen wir jetzt eine Rails-Anwendung.

Neue Rails-Anwendung erstellen

Erstellen Sie eine neue Rails-Anwendung in Ihrem Home-Verzeichnis. Verwenden Sie die Option + -d postgresql +, um PostgreSQL als Datenbank festzulegen, und achten Sie darauf, das hervorgehobene Wort durch den Namen Ihrer Anwendung zu ersetzen:

cd ~
rails new  -d postgresql

Wechseln Sie dann in das Anwendungsverzeichnis:

cd

Im nächsten Schritt konfigurieren Sie die Datenbankverbindung der Anwendung.

Datenbankverbindung konfigurieren

Der von Ihnen erstellte PostgreSQL-Benutzer wird zum Erstellen der Test- und Entwicklungsdatenbank Ihrer Anwendung verwendet. Wir müssen die richtigen Datenbankeinstellungen für Ihre Anwendung konfigurieren.

Öffnen Sie die Datenbankkonfigurationsdatei Ihrer Anwendung in Ihrem bevorzugten Texteditor. Wir verwenden vi:

vi config/database.yml

Suchen Sie im Abschnitt "+ default +" die Zeile "pool: 5" und fügen Sie die folgenden Zeilen hinzu. Es sollte ungefähr so ​​aussehen (ersetzen Sie die markierten Teile durch Ihren PostgreSQL-Benutzer und Ihr Passwort):

config / database.yml Auszug

 host: localhost
 username:
 password:

Speichern und schließen.

Erstellen Sie Anwendungsdatenbanken

Erstellen Sie Ihre Anwendungs-Entwicklungs- und -Test-Datenbanken mit diesem Rake-Befehl:

rake db:create

Dadurch werden zwei Datenbanken auf Ihrem PostgreSQL-Server erstellt. Wenn der Name Ihrer Anwendung beispielsweise "Anwendungsname" lautet, werden Datenbanken mit den Namen "Anwendungsname_Entwicklung" und "Anwendungsname_Test" erstellt.

Wenn an dieser Stelle eine Fehlermeldung angezeigt wird, überprüfen Sie den vorherigen Unterabschnitt (Configure Database Connection), um sicherzustellen, dass die Zeichen + host +, + username + und + password + in + database.yml + korrekt sind. Versuchen Sie erneut, die Anwendungsdatenbanken zu erstellen, nachdem Sie sichergestellt haben, dass die Datenbankinformationen korrekt sind.

Konfiguration testen

Am einfachsten können Sie testen, ob Ihre Anwendung die PostgreSQL-Datenbank verwenden kann, indem Sie versuchen, sie auszuführen.

Verwenden Sie zum Ausführen der Entwicklungsumgebung (Standardeinstellung) beispielsweise den folgenden Befehl:

rails server

Dadurch wird Ihre Rails-Anwendung auf Ihrem lokalen Host auf Port 3000 gestartet.

Wenn sich Ihre Rails-Anwendung auf einem Remote-Server befindet und Sie über einen Webbrowser darauf zugreifen möchten, können Sie sie auf einfache Weise an die öffentliche IP-Adresse Ihres Servers binden. Suchen Sie zuerst die öffentliche IP-Adresse Ihres Servers und verwenden Sie sie dann mit dem Befehl + rail server + wie folgt:

rails server --binding=

Jetzt sollten Sie in einem Webbrowser über die öffentliche IP-Adresse des Servers auf Port 3000 auf Ihre Rails-Anwendung zugreifen können:

Besuchen Sie in einem Webbrowser:

http://:3000

Wenn die Ruby on Rails-Seite "Willkommen an Bord" angezeigt wird, ist Ihre Anwendung ordnungsgemäß konfiguriert und mit der PostgreSQL-Datenbank verbunden.

Fazit

Sie können jetzt mit der Entwicklung Ihrer Ruby on Rails-Anwendung beginnen. Als Datenbank dient PostgreSQL unter CentOS 7!

Viel Glück!