PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Nach DROP SCHEMA public kann keine neue Tabelle erstellt werden

Die Fehlermeldung erscheint, wenn keines der Schemas in Ihrem search_path kann gefunden werden.
Entweder ist es falsch konfiguriert. Was bekommst du dafür?

SHOW search_path;

Oder Sie haben den public gelöscht Schema aus Ihrer Standard-Systemdatenbank template1 . Möglicherweise wurden Sie mit der falschen Datenbank verbunden wenn Sie drop schema public cascade; ausgeführt haben

Wie der Name schon sagt, ist dies die Vorlage zum Erstellen neuer Datenbanken. Daher beginnt jede neue Datenbank ohne das (Standard-)Schema public now - während Ihr Standard-search_path hat wahrscheinlich 'öffentlich' drin.

Führen Sie einfach (als Superuser public oder siehe mgojohns Antwort ):

CREATE SCHEMA public;

in der Datenbank template1 (oder jede andere Datenbank, wo Sie sie brauchen).

Der Hinweis mit DROP SCHEMA ... CASCADE ansonsten gilt, alle darin befindlichen Objekte schnell zu zerstören.