← strona głównaProgramowanie (Програмування)

Rozbieramy błąd PG::ObjectInUse (Ruby on Rails)

Czasami podczas rozwoju może wystąpić błąd PG::ObjectInUse: ERROR.Na przykład: rake db:drop; Pokaże nam następujący błąd: PG::ObjectInUse: ERROR: database "myproject_development" is being accessed by other users DETAI...

Ta treść została automatycznie przetłumaczona z ukraińskiego.
Czasami podczas rozwoju może wystąpić błąd PG::ObjectInUse: ERROR.
Na przykład:
rake db:drop;
Pokaże nam następujący błąd:
PG::ObjectInUse: ERROR:  database "myproject_development" is being accessed by other users

DETAIL:  There is 1 other session using the database

Couldn't drop database 'myproject_development'

rake aborted!

ActiveRecord::StatementInvalid: PG::ObjectInUse: ERROR:  database "myproject_development" is being accessed by other users

DETAIL:  There is 1 other session using the database.

Caused by:PG::ObjectInUse: ERROR:  database "myproject_development" is being accessed by other users

DETAIL:  There is 1 other session using the database.
Tasks: TOP => db:drop:_unsafe

(See full trace by running task with --trace)
Tu wszystko jest dość proste. Komunikat jest bardzo informacyjny i dosłownie mówi - database "myproject_development" is being accessed by other users. To znaczy, że obecnie nie możemy usunąć bazy danych, ponieważ ma aktywne połączenie. Lokalne zazwyczaj to albo uruchomiony serwer rails i/lub rails c (konsola). Musimy je zamknąć, aby proces odłączył się od bazy danych. Po tym ponownie uruchamiamy rake db:drop; i wszystko powinno działać.
Czasami może się zdarzyć, że lokalnie wydaje się, że nie ma otwartych procesów / połączeń w terminalu, ale nadal mamy błąd "database is being accessed by other users". Zazwyczaj oznacza to, że gdzieś mamy proces, który nadal pracuje z bazą danych. Czasami może to być proces w tle / demon. Ale aby znaleźć i zabić ten proces - potrzebujemy więcej kontekstu. Można przeskanować porty i procesy i zabić te, które używają bazy. Ale o tym prawdopodobnie napiszę w innej notatce.

🔥 Więcej postów

Wszystkie wpisy
Programowanie (Програмування)12 kwi '24 10:07

Czym jest Routing (Routing)?

Routing (routing, lub trasowanie) - to kluczowy etap w procesie kierowania ruchem sieciowym do je...

Programowanie (Програмування)15 kwi '24 17:50

Czym jest entropia?

Entropia - to pojęcie z teorii informacji i statystyki, które jest używane do mierzenia stopnia n...

Programowanie (Програмування)15 kwi '24 18:11

Czym są wskazówki klienta HTTP?

HTTP Client Hints (podpowiedzi klienta) - to mechanizm przeglądarki internetowej, który przekazuj...

ZOMBIE w Ruby. Co to jest?
Programowanie (Програмування)3 maj '24 12:41

ZOMBIE w Ruby. Co to jest?

Ruby - to język programowania. Tutaj wszystko jest jasne. W kodzie tego języka można spotkać term...

Programowanie (Програмування)7 maj '24 07:24

Czym jest natywny kod maszynowy?

Kod maszynowy natywny - to rodzaj kodu programowego, który jest bezpośrednio wykonywany przez pro...