Hallo miteinander,
folgendes Problem:
Ich würde gerne ein sql script schreiben, dass mir eine frische Postgres installation initialisiert.
D.H.: Anlegen der Datenbank und erstellen von tables, etc alles in einem Scriot.
Wie kann ich nun im Script auf die neu angelegte Datenbank wechseln, damit mir meine CREATE TABLES, etc. nicht auf der initial gewählten "postgres" Datenbank ablaufen?
Wenn ich im PgAdmin ein BACKUP mache, dann schaut die so aus:
CREATE DATABASE frontrail WITH TEMPLATE = template0 ENCODING = 'UTF8' LC_COLLATE = 'C' LC_CTYPE = 'C';
ALTER DATABASE frontrail OWNER TO frontrail;
\connect frontrail
Allerdings wird dieses Connect nicht von einem reinen SQL Interpreter gelesen. Kurz gesagt es funktioniert nicht.
Vielen Dank für eure Hilfe
Was verstehst Du unter einem 'reinen SQL Interpreter'?
Code:kretschmer@tux:~$ cat mruepp.sql create database mruepp; \connect mruepp; create table mruepp(t text); insert into mruepp(t) values ('geht doch, oder?'); kretschmer@tux:~$ psql -X test -f mruepp.sql psql:mruepp.sql:1: ERROR: database "mruepp" already exists psql (8.4.2) You are now connected to database "mruepp". CREATE TABLE INSERT 0 1 kretschmer@tux:~$ psql mruepp -c 'select * from mruepp'; t ------------------ geht doch, oder? (1 row)
Ich seh grad, ich hatte das 2 mal aufgerufen, das erste mal ohne dem -X, weil ich in meiner ~/.psqlrc Autocommit abgeschaltet hatte war zwar die DB da (creaedb ist nicht tx-fähig), aber die Tabelle fehlte.
Aber davon abgesehen, es funktioniert mit \connect
Andreas
Geändert von akretschmer (04.03.2010 um 14:36 Uhr)
--
https://www.xing.com/profile/Andreas_Kretschmer7ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
Links: Tobias Bauer - IT- und Funkdienstleistungen - Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen - Funkforum
Lesezeichen