Łączenie się z serwerem bazy danych środowiska deweloperskiego - iiuni/projektzapisy GitHub Wiki

Dane logowania są dostępne w pliku env/.env pod zmiennymi DATABASE_NAME ,DATABASE_USER, DATABASE_PASSWORD.

Najłatwiej uzyskać dostęp za pomocą interaktywnego terminala PostgreSQL w linii poleceń maszyny wirtualnej – należy najpierw się na nią zalogować:

ja@mojkomputer:projektzapisy$ vagrant ssh 

a następnie uruchomić klienta używając ww. danych logowania:

(env3) vagrant@ubuntu-focal:~$ psql -h 127.0.0.1 -U fereol

choć tak naprawdę jeszcze prościej (bo bez konieczności sprawdzania ww. danych) skorzystać z dostarczanej przez Django drogi na skróty:

(env3) vagrant@ubuntu-focal:~$ cd /vagrant/zapisy/
(env3) vagrant@ubuntu-focal:/vagrant/zapisy$ python3 manage.py dbshell

Połączenie spoza maszyny wirtualnej

Czasami wygodniejsze może być użycie innych klientów, np. uruchamianych na maszynie lokalnej, a nie wirtualnej. Aby to umożliwić, należy odpowiednio zmienić konfigurację serwera PostgreSQL na maszynie wirtualnej. Poniższe zmiany przetrwają do momentu zniszczenia maszyny wirtualnej poleceniem vagrant destroy.

Istotne pliki konfiguracyjne to postgresql.conf i pg_hba.conf w katalogu /etc/postgresql/12/main (przy czym ta ścieżka może ulec zmianie np. w późniejszych wersjach PostgreSQL). Należy zalogować się do maszyny wirtualnej i odpowiednio zmienić zawartość każdego z tych plików, np. tak:

ja@mojkomputer:projektzapisy$ vagrant ssh 
(env3) vagrant@ubuntu-focal:~$ cd /etc/postgresql/12/main
(env3) vagrant@ubuntu-focal:/etc/postgresql/12/main$ echo "listen_addresses = '*'" | sudo tee -a postgresql.conf
(env3) vagrant@ubuntu-focal:/etc/postgresql/12/main$ echo "host all all 0.0.0.0/0 password" | sudo tee -a pg_hba.conf
(env3) vagrant@ubuntu-focal:/etc/postgresql/12/main$ sudo service postgresql restart

Ostatnie polecenie przeładowuje serwer bazodanowy uwzględniając zmienioną konfigurację.

W tym momencie możemy połączyć się używając klienta uruchomionego na maszynie lokalnej przy użyciu tych samych danych logowania, co wcześniej, musimy jednak wybrać port, na który został przekierowany serwer bazodanowy maszyny wirtualnej (zamiast np. portu domyślnego, na którym może nasłuchiwać nasz lokalny PostgreSQL, o ile go mamy). Zgodnie z zawartością pliku Vagrantfile jest to 15432. Na przykład lokalny terminal PostgreSQL uruchomić można tak:

ja@mojkomputer:~$ psql -h 127.0.0.1 -p 15432 -U fereol