Cała oryginalna treść jest tworzona po ukraińsku. Nie wszystkie treści zostały jeszcze przetłumaczone. Niektóre posty mogą być dostępne tylko po ukraińsku.Dowiedz się więcej

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

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.

Ten post nie ma jeszcze żadnych dodatków od autora.

12 kwi 10:07

Czym jest Routing (Routing)?

meme code
meme code@memecode
14 kwi 09:12

Czym są wartości Quality (jakościowe wartości / priorytet) w HTTP?

meme code
meme code@memecode
14 kwi 09:14

Accept - nagłówek HTTP, do czego jest potrzebny i jak działa?

meme code
meme code@memecode
15 kwi 17:50

Czym jest entropia?

meme code
meme code@memecode
15 kwi 18:11

Czym są wskazówki klienta HTTP?

meme code
meme code@memecode
18 kwi 05:27

Naprawiamy ActiveRecord::ProtectedEnvironmentError w lokalnym środowisku

meme code
meme code@memecode
27 kwi 09:29

Co to jest CC i BCC w e-mailach? Do czego i jak ich używać?

meme code
meme code@memecode
Czym jest prompt (prompt) i inżynieria promptów?
3 maj 12:08

Czym jest prompt (prompt) i inżynieria promptów?

meme code
meme code@memecode
ZOMBIE w Ruby. Co to jest?
3 maj 12:41

ZOMBIE w Ruby. Co to jest?

meme code
meme code@memecode
3 maj 13:13

Czym jest Garbage Collector w Ruby? Jak działa i do czego potrzebny jest GC?

meme code
meme code@memecode
Trochę o typach implementacji Ruby (CRuby (MRI), JRuby, Rubinius, TruffleRuby, mruby)
5 maj 12:36

Trochę o typach implementacji Ruby (CRuby (MRI), JRuby, Rubinius, TruffleRuby, mruby)

meme code
meme code@memecode
7 maj 07:24

Czym jest natywny kod maszynowy?

meme code
meme code@memecode