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