Datenbanktabellen verschwunden, oder doch nicht?

Hallo,

ich habe lokal auf meinem Pc unter Linux (Kubuntu 9.10) eine Postgre-Datenbank (8.3.8) installiert, in der ein paar selbst geschriebene Programme ihre Daten hinterlegen.
Nach einem Neustart am nächsten Tag starte ich ein solches Programm, aber es werden mir keine Daten angezeigt. psql in der Konsole gestartet und ein \d liefert mir das Resultat “Keine Relationen gefunden”. Und das bei drei Datenbanken, die ich angelegt habe.
Und jetzt kommt das verwunderliche dabei. Ich hab mal einfach pg_dump auf alle Datenbanken ausgeführt und siehe da, hier gibt es die Daten noch. Wie kann das? Es läuft ja auch nur eine Datenbank und die Versionen von pg_dump und psql sind auch die gleichen.
Danke im Voraus.

Gruß
Markus

Die Lösung auf des Rätsels Problem dürfte in der Dump-Datei liegen. Laß mich raten: Deine Tabellen liegen in einem extra Schema und nicht in PUBLIC. Daher kann \d diese nicht anzeigen, da es nur in

test=# show search_path;
  search_path
----------------
 "$user",public
(1 row)

nachschaut.

Andreas

Danke dir für die schnelle Antwort.
In der dump-Datei steht unter anderem folgendes drin:

SET search_path = public, pg_catalog;
...
ALTER TABLE public.account_balance OWNER TO markus;

wenn ich jetzt per psql in die Konsole gehe, sehe ich erst einmal keine Relationen. Führe ich dann

SET search_path = public, pg_catalog;

aus, sind diese sichtbar aber nur für die Sitzung. Hast also recht damit. Schon blöd, dass es auf einmal so ist. Postgre hat das nicht von allein gemacht, das ist mir klar. Hatte letztens mal testweise Adempiere installiert. Vielleicht ist das der Übeltäter.
Jetzt muss ich erst mal noch schauen, wie ich das wieder dauerhaft löse.

Danke und Gruß
markus

Damit sollte die Tabelle in public stehen, was auch normal ist. Offensichtlich hat Dein User public nicht im search_path.

wenn ich jetzt per psql in die Konsole gehe, sehe ich erst einmal keine Relationen. Führe ich dann

SET search_path = public, pg_catalog;

>
> aus, sind diese sichtbar aber nur für die Sitzung. Hast also recht damit. Schon blöd, dass es auf einmal so ist. Postgre hat das nicht von allein gemacht, das ist mir klar. Hatte letztens mal testweise Adempiere installiert. Vielleicht ist das der Übeltäter.
> Jetzt muss ich erst mal noch schauen, wie ich das wieder dauerhaft löse.
>
> Danke und Gruß
> markus

alter user ... set search_path= ... $user, public;
\
\
Andreas

Danke dir vielmals. Alles ist wieder so, wie es sein sollte.

Gruß,
Markus