[RUBY] [Docker] So trennen Sie eine mit der Datenbank verbundene Sitzung zwangsweise [Postgres]

Rails db: migrate: reset Ich habe einen Fehler erhalten, den ich noch nie gesehen habe, und bin ein bisschen hängen geblieben. Deshalb möchte ich hier eine Lösung vorstellen.

ERROR!


ERROR:  database "hoge_development" is being accessed by other users
DETAIL:  There are 1 other sessions using the database.

Um ehrlich zu sein, war ich mir nicht sicher, warum dies passiert ist, aber es scheint, dass andere Benutzer immer noch verbunden waren und nicht auf den Datenbankcontainer zugreifen konnten.

Sie müssen in den Container gehen, eine Verbindung zu PostgreSQL herstellen und die Verbindung zwangsweise löschen.

【Umgebung】

Lösungsverfahren

Geben Sie zuerst den Datenbankcontainer ein.


$ docker exec -it hoge_db_1 bash
root@xxxxxaf78adb:/#

Stellen Sie im Container eine Verbindung zu PostgreSQL her.


root@xxxxxaf78adb:/# psql -U postgres

Zeigen Sie nach dem Herstellen einer Verbindung zu PostgreSQL die PID des verbindenden Benutzers mit dem folgenden Befehl an.


postgres=# SELECT pid FROM pg_stat_activity where pid <> pg_backend_pid();

  pid  
-------
144
29
28
27
(4 rows)

Da vier in ↑ herausgekommen sind, führen Sie die folgenden Befehle nacheinander aus, um alle zu trennen.


SELECT pg_terminate_backend(144);
 pg_terminate_backend 
----------------------
 t
(1 row)

SELECT pg_terminate_backend(29);
 pg_terminate_backend 
----------------------
 t
(1 row)

(Kürzung)

Ich tat dies, stieg aus dem Container und `` `Docker-Compose Exec Web Rails db: migrate: reset``` und es ging vorbei!

Es ist jedoch unklar, warum andere Benutzer verbunden sind, auch wenn ich es überprüfe. Wenn Sie es verstehen können, würde ich es begrüßen, wenn Sie einen Kommentar abgeben könnten! !!

Vielen Dank für das Lesen bis zum Ende!

Fast jeden Tag gebe ich aus, was ich in meiner persönlichen Entwicklung stecken geblieben bin. Wenn Sie Vorschläge haben, würde ich mich freuen, wenn Sie einen Kommentar abgeben könnten!

Recommended Posts

[Docker] So trennen Sie eine mit der Datenbank verbundene Sitzung zwangsweise [Postgres]
So überprüfen Sie das Protokoll im Docker-Container
So löschen Sie die Datenbank beim Neuerstellen der App
So installieren Sie Docker
So legen Sie Nginx von Docker fest
[Schienen] Anzeigen von Informationen, die in der Datenbank gespeichert sind
[Docker] Zugriff auf den Host aus dem Container heraus. http: //host.docker.internal:
Verwendung der link_to-Methode
Verwendung der include? -Methode
Wechseln Sie dynamisch die Datenbank, zu der eine Verbindung hergestellt werden soll
Verwendung der Methode form_with
So finden Sie den durchschnittlichen Winkel
Verwendung der Wrapper-Klasse
So führen Sie JavaFX unter Docker aus
So fügen Sie die Löschfunktion hinzu
So erstellen Sie CloudStack mit Docker
So starten Sie Camunda mit Docker
Gorigori-Anfänger fassten zusammen, wie die Datenbank mit der Rails-Konsole Ntiunus betrieben wird
[Docker] So lösen Sie die nicht implementierte Fehlerfunktion @ io_fread ~ [Super einfach]
[Docker] Erstellen, wenn der Quellcode auf dem Container gebunden ist
So erhalten Sie den Einstellungswert (Eigenschaftswert) aus der Datenbank in Spring Framework
[Java] Verwendung der File-Klasse
Untersuchen Sie den Ersatz von Docker zu Podman.
So löschen Sie die Fehlerbündelung
[Schienen] Verwendung der Kartenmethode
[Java] Verwendung der toString () -Methode
Studieren der Verwendung des Konstruktors (Java)
[Verarbeitung × Java] Verwendung der Schleife
So bestimmen Sie die Anzahl der Parallelen
[Java] So stellen Sie die Datums- und Uhrzeit auf 00:00:00 ein
[Verarbeitung × Java] Verwendung der Klasse
So sortieren Sie eine Liste von SelectItems
Wie man die Zehner und Einsen findet
So übergeben Sie den Wert an einen anderen Bildschirm
So erhalten Sie das Datum mit Java
[Verarbeitung × Java] Verwendung der Funktion
[Java] Verwendung der Calendar-Klasse
Zusammengefasst, wie man die Programmiertreppe hinaufsteigt
So führen Sie Blazor (C #) mit Docker aus
So erstellen Sie eine Rails 6-Umgebung mit Docker
Anzeigen der vom Docker-Container verwendeten Festplattenmenge für jeden Container