Da bei PostgreSQL nicht alles so simpel ist, wie bei MySQL, hier ein paar Operationen zum schnellen nachschlagen.
Inhalt
Mit dem Server verbinden
su - postgres
psql
Datenbanken auflisten
\l
Ausgabe:
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
mydb | mydb | UTF8 | de_CH.UTF-8 | de_CH.UTF-8 |
postgres | postgres | UTF8 | de_CH.UTF-8 | de_CH.UTF-8 |
(4 rows)
Alternativ mit SQL:
SELECT datname FROM pg_database;
Mit einer Datenbank verbinden
postgres=# \c mydb
Ausgabe:
You are now connected to database "mydb" as user "postgres".
mydb=#
Tabellen einer Datenbank auflisten
mydb=# \dt
Alle Tabellen löschen
Wenn die Tabellen auf dem selben Schema (Standardmässig „public“) sind, kann man das Schema löschen und neu erstellen.
DROP SCHEMA public CASCADE;
CREATE SCHEMA public;
Achtung: Dies kann unter Umständen Probleme mit gesetzten Berechtigungen im Schema hervorrufen.
Abhilfe schafft vielleicht der Zusatz GRANT ALL ON schema public:
GRANT ALL ON schema public TO mydb;
Alternativ kann man auch ein SQL-Script mit den einzelnen Tabellen generieren lassen:
select 'drop table if exists "' || tablename || '" cascade;' from pg_tables;
Gegebenenfalls kann man die Query noch anpassen:
select 'drop table if exists "' || tablename || '" cascade;'
from pg_tables
where schemaname = 'public'; -- or any other schema
select 'drop table if exists "' || tablename || '" cascade;' from pg_tables where tablename not like 'pg_%';
Datenbank exportieren (dump sichern)
pg_dump mydb > mydb.sql
Datenbank importieren (SQL dump laden)
psql mydb < mydb.sql