[RUBY] [Docker] Comment déconnecter de force une session connectée à la base de données [Postgres]

Rails db: migrate: reset J'ai une erreur que je n'ai jamais vue et je suis un peu bloqué, alors j'aimerais partager une solution ici.

ERROR!


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

Pour être honnête, je n'étais pas sûr de savoir pourquoi cela s'est produit, mais il semble que d'autres utilisateurs ont continué à se connecter et n'ont pas pu accéder au conteneur de base de données.

Vous devez entrer dans le conteneur, vous connecter à PostgreSQL et supprimer de force la connexion.

【environnement】

Procédure de solution

Tout d'abord, entrez dans le conteneur db.


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

Une fois à l'intérieur du conteneur, connectez-vous à PostgreSQL.


root@xxxxxaf78adb:/# psql -U postgres

Après vous être connecté à PostgreSQL, affichez le pid de l'utilisateur qui se connecte avec la commande suivante.


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

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

Puisque quatre sont sortis dans ↑, exécutez les commandes suivantes une par une afin de tout déconnecter.


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

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

(réduction)

Je l'ai fait, je suis sorti du conteneur et docker-compose exec web rails db: migrate: reset '' `et c'est passé!

Cependant, on ne sait pas pourquoi d'autres utilisateurs sont connectés même après vérification, donc si vous pouvez le comprendre, j'apprécierais que vous puissiez commenter! !!

Merci d'avoir lu jusqu'au bout!

Presque tous les jours, je sort ce que je suis coincé dans mon développement personnel. Si vous avez des suggestions, je vous serais reconnaissant de bien vouloir commenter!

Recommended Posts

[Docker] Comment déconnecter de force une session connectée à la base de données [Postgres]
Comment vérifier le journal dans le conteneur Docker
Comment effacer la base de données lors de la recréation de l'application
Comment installer Docker
Comment définir nginx de Docker
[Rails] Comment afficher les informations stockées dans la base de données dans la vue
[Docker] Comment accéder à l'hôte depuis l'intérieur du conteneur. http: //host.docker.internal:
Comment utiliser la méthode link_to
Comment utiliser la méthode include?
Basculer dynamiquement la base de données à laquelle se connecter
Comment utiliser la méthode form_with
Comment trouver l'angle moyen
Comment utiliser la classe wrapper
Pour exécuter JavaFX sur Docker
Comment ajouter la fonction de suppression
Comment créer CloudStack à l'aide de Docker
Comment démarrer Camunda avec Docker
Les débutants de Gorigori ont résumé comment utiliser la base de données à l'aide de la console rails Ntiunus
[Docker] Comment résoudre la fonction d'erreur non implémentée @ io_fread ~ [Super facile]
[Docker] Comment créer lorsque le code source est monté en liaison sur le conteneur
Comment obtenir la valeur du paramètre (valeur de la propriété) à partir de la base de données dans Spring Framework
[Java] Comment utiliser la classe File
Examinez le remplacement de Docker vers Podman.
Comment désactiver le regroupement d'erreurs
[Rails] Comment utiliser la méthode de la carte
[Java] Comment utiliser la méthode toString ()
Etudier comment utiliser le constructeur (java)
[Traitement × Java] Comment utiliser la boucle
Comment déterminer le nombre de parallèles
[Java] Comment régler la date sur 00:00:00
[Traitement × Java] Comment utiliser la classe
Comment trier une liste de SelectItems
Comment trouver les dizaines et les unités
Comment passer la valeur à un autre écran
Comment obtenir la date avec Java
[Traitement × Java] Comment utiliser la fonction
[Java] Comment utiliser la classe Calendar
Résumé de la façon de monter les escaliers de programmation
Comment exécuter Blazor (C #) avec Docker
Comment créer un environnement Rails 6 avec Docker
Comment afficher la quantité de disque utilisée par le conteneur Docker pour chaque conteneur