• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

SQL: Datenbankname aus Shell-Skript heraus ändern (psql)

Hallo zusammen,

zunächst eine Schilderung der Sachverhalts:

Ich hab lokal eine Datenbank laufen die ich nun vierteljährlich mit einer externen XML-Datenbank aktualisieren will. Da das wegen der größe sehr lange dauert, will ich das mit Skript und cronjob automatisieren, so dass ich nur noch ein Minimum manuell machen muss.
Da die Datenbank dauerhaft verfügbar sein muss, lege ich zum aktualisieren eine zweite Datenbank an, die ich erstmal fülle und bearbeite, ... . Abschließend will ich die laufende sichern und die neue zur Laufenden machen, indem ich sie umbenenne in den Namen der ersten. (Theoretisch könnte ich auch die Bezeichnungen im zugehörigen Interface ändern, was ich aber nicht so ideal fände, weil es ein mehraufwand ist).

Nun die Frage:

Wie kann ich mit einem Befehl, der dann im entsprechenden Skript steht, den Namen der Datenbank ändern (bsp. von "xyz" zu "abc")?

Ich verwende PostgreSQL (Version 7.4.7 glaub ich)

Danke schonmal vorneweg und verzeiht bitte, falls es schonmal da war oder höchst trivial ist: Ich war mit Google und Forensuche noch nicht wirklich erfolgreich :-(
 

abgdf

Guru
Hmm, unter

http://www.linux-club.de/ftopic49585.html

steht was zu "Namen einer Tabelle ändern".
Vielleicht geht das analog auch mit

ALTER DATABASE x RENAME y;

oder so. Aber erst mal mit leerer Datenbank probieren :p.

Gruß

Edit:
Ja, so in etwa:
http://archives.postgresql.org/pgsql-bugs/2005-03/msg00065.php
 
OP
P

Pfefferoni

Newbie
thx, das mit ALTER TABLE hatte ich auch schon gesehen, war mir aber nicht sicher, ob das auf ne Datenbank übertragbar ist. Richtige Syntax ist in psql:

Code:
psql irgendeine_db -U username -c "ALTER DATABASE db1 RENAME TO db2"

wobei "irgendeine_db" nicht identisch mit "db1" sein darf (Man darf logischerweise nicht die DB umbenennen auf der man gerade arbeitet).

Mit dem Quelltext von phpPgAdmin hab ich noch rausgekriegt, dass dieser SQL-Befehl nur ab der version 7.4. funktioniert.

Analog kann man den Besitzer mit "OWNER TO" anstelle von "RENAME TO" ändern (ab Version 8 )

MfG
 
Oben