PostgreSQL Cheat Sheet
- 19. Februar 2022
Wenn man eine PostgreSQL-Datenbank mit seiner Django-App benutzt, ist es manchmal nötig, direkt mit der Datenbank zu arbeiten. Damit ich nicht immer das Internet bemühen muss, habe ich mir einen Spickzettel (Cheat Sheet) mit den meistverwendeten Befehlen zusammengestellt.
Es ist natürlich möglich, eine grafische Benutzeroberfläche wie pgAdmin oder phpPgAdmin zu benutzen. Für die meisten Aufgaben benutze ich jedoch die Befehlszeile. Diese ist überall installiert und die Dinge sind schnell erledigt, ohne dass ich mir einen Kopf über die Verwendung des jeweiligen GUIs machen muss.
Login/Logout
Um mit einer PostgreSQL-Datenbank zu arbeiten muss ich mich zuerst mittels einer interaktiven PosgreSQL-Shell am Server anmelden. Das Tool dazu heisst psql (PostgreSQL interactive terminal).
Einloggen an einer interaktiven PSQL-Session
sudo -u postgres psql
Ausloggen von einer interaktiven PSQL-Session
\q
Den Überblick behalten
Sobald du am Server eingeloggt bist, gilt es zuerst den Überblick zu bekommen: Welche Datenbanken und Benutzer sind installiert, welche Datenbank hat welche Tabellen, etc.
Auflisten aller Datenbanken
Listet alle Datenbanken auf, die von diesem PostgreSQL-Server verwaltet werden.
\l
# oder
\list
Anmelden an einer Datenbank
Um mit einer Datenbank arbeiten zu können, z.B. um die Tabellen zu sehen, die Daten zu verändern, etc. musst du dich an der betreffenden Datenbank anmelden.
\connect meine_datenbank
# oder
\c meine_datenbank
# z.B.
\connect djangoblog_djangoblog
# oder
\c djangoblog_djangoblog
Du erhältst folgende Ausgabe:
You are now connected to database "djangoblog_djangoblog" as user "postgres".
Anzeigen aller Tabellen einer Datenbank
Um die Tabellen einer Datenbank zu sehen, musst du an ihr angemeldet sein. Die Tabellen zeigst du mit folgendem Befehl an:
\dt
Wechseln der Datenbank
Das Wechseln der Datenbank hat den gleichen Befehl, wie das Anmelden. Nämlich:
\connect meine_datenbank
oder:
\c meine_datenbank
Benutzerverwaltung
Anzeigen aller Benutzer/Rollen
Datenbankbenutzer heissen in PostgreSQL Rollen. Um eine Liste aller Benutzer des PosgreSQL-Servers anzuzeigen, gib folgenden Befehl ein:
\du
Erstellen eines Benutzers
Um einen Datenbankbenutzer, resp. eine Rolle zu erstellen, müssen wir folgenden Befehl absetzen:
CREATE USER mein_benutzer WITH PASSWORD 'passwort';
Passwort für einen Benutzer ändern
Manchmal muss das Passwort für einen Datenbankbenutzer geändert werden. Das erreichst du mit dem folgenden Befehl:
ALTER USER mein_benutzer WITH PASSWORD 'neues_passwort';
Einem Benutzer das Recht zuweisen, Datenbanken zu erstellen
Gib einem Benutzer das Recht, eine Datenbank zu erstellen:
ALTER USER myprojectuser CREATEDB;
Einem Benutzer alle Rechte an einer Datenbank zuweisen
Um einem Benutzer zu erlauben, Änderungen an einer Datenbank vorzunehmen, müssen wir ihm die benötigten Rechte zuweisen. Mit dem folgenden Befehl gibst du dem Benutzer alle Rechte über die Datenbank.
GRANT ALL PRIVILEGES ON DATABASE meine_datenbank TO mein_benutzer;
Quellen
- Dokumentation zu psql (englisch)
- Webseite von pgAdmin (englisch)
- Github-Projektseite von phpPgAdmin (englisch)
Das könnte dich auch interessieren
Exportieren und Importieren einer PostgreSQL-Datenbank mithilfe der Befehlszeile
- 16. Februar 2022
Wenn man ein Projekt von der lokalen Festplatte auf einen Live-Server migrieren will oder eine Webseite von einem Host zu einem anderen zügelt, muss immer auch die Datenbank mit. Bei einer Django-Webseite ist dies meist eine PostgreSQL-Datenbank. Wie die Migration mithilfe der Befehlszeile gelingt, beschreibe ich in diesem Beitrag.