Ich bin neu in postgreSQL und habe eine einfache Frage:
Ich versuche, ein einfaches Skript zu erstellen, das eine Datenbank erstellt, damit ich es später so aufrufen kann:
psql -f createDB.sql
Ich möchte, dass das Skript andere Skripte aufruft (separate zum Erstellen von Tabellen, Hinzufügen von Einschränkungen, Funktionen usw.), wie folgt:
\i script1.sql
\i script2.sql
Es funktioniert gut, vorausgesetzt, createDB.sql befindet sich im selben Verzeichnis .
Aber wenn ich script2 in ein Verzeichnis unter dem mit createDB verschiebe und die createDB so ändere, dass sie so aussieht:
\i script1.sql
\i somedir\script2.sql
Ich erhalte eine Fehlermeldung:
psql: createDB.sql: 2: somedir: Berechtigung verweigert
Ich verwende Postgres Plus 8.3 für Windows, Standardbenutzer von Postgres.
BEARBEITEN:
Blöd mich, Unix-Schrägstriche haben das Problem gelöst.
quelle
Haben Sie versucht, Schrägstriche im Unix-Stil (/ anstelle von \) zu verwenden?
\ ist oft ein Escape- oder Befehlszeichen und kann zu Verwirrung führen. Ich hatte noch nie Probleme damit, aber ich habe auch kein Windows, daher kann ich es nicht testen.
Darüber hinaus können die Berechtigungen auf dem Benutzer basieren, der psql ausführt, oder auf dem Benutzer, der den Postmaster-Dienst ausführt. Überprüfen Sie, ob beide in diese Datei in diesem Verzeichnis gelesen haben.
quelle
Versuchen Sie dies, ich arbeite selbst daran
quelle
Ich habe versucht, dies und seine Arbeit in Windows-Maschine, um eine SQL-Datei in einem bestimmten Schema auszuführen.
quelle