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】
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! !!
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