Bearbeiten von „PostGreSQL“

Zur Navigation springen Zur Suche springen

Warnung: Du bist nicht angemeldet. Deine IP-Adresse wird bei Bearbeitungen öffentlich sichtbar. Melde dich an oder erstelle ein Benutzerkonto, damit Bearbeitungen deinem Benutzernamen zugeordnet werden.

Die Bearbeitung kann rückgängig gemacht werden. Bitte prüfe den Vergleich unten, um sicherzustellen, dass du dies tun möchtest, und veröffentliche dann unten deine Änderungen, um die Bearbeitung rückgängig zu machen.

Aktuelle Version Dein Text
Zeile 26: Zeile 26:
<pre>createdb dbtest
<pre>createdb dbtest
</pre>
</pre>
== Backup und Restore ==
<pre>
# Backup
pg_dump --format=p dbname > dumpfile
# Restore
psql --set ON_ERROR_STOP=on dbname < dumpfile
# DB auf anderen Server kopieren
pg_dump -h host1 dbname | psql -h host2 dbname
</pre>
Formate:
* c custom (ist komprimiert)
* d=Verzeichnis
* t tar
* p plain text


== Services ==
== Services ==
Zeile 207: Zeile 226:
ALTER SEQUENCE sysflags_sysflag_id_seq RESTART WITH 1100;
ALTER SEQUENCE sysflags_sysflag_id_seq RESTART WITH 1100;
</pre>
</pre>
= Werkzeuge =
<syntaxhighlight lang=bash>
# Alle Datenbanken anzeigen
echo '\list' | sudo -u postgres psql postgres | egrep -o "^ [^ ]+ "
</syntaxhighlight>


= Installation =
= Installation =
Zeile 315: Zeile 328:
pg_dump dbname > dumpfile
pg_dump dbname > dumpfile
pg_dump -h $HOST -p $PORT dbname | gzip > dbname.sql.gz
pg_dump -h $HOST -p $PORT dbname | gzip > dbname.sql.gz
pg_dumpall > dumpfile
 
# Restaurieren:
# Restaurieren:
psql dbname < dumpfile
psql dbname < dumpfile
psql --set ON_ERROR_STOP=on dbname < dumpfile
psql --set ON_ERROR_STOP=on dbname < dumpfile
pg_restore dumpfile


# Duplizieren einer DB:
# Duplizieren einer DB:
Zeile 326: Zeile 338:
ls -ld $FN
ls -ld $FN
sudo -u postgres pg_restore -h dragon --dbname=pggrlabtest $FN
sudo -u postgres pg_restore -h dragon --dbname=pggrlabtest $FN
# DB auf anderen Server kopieren
pg_dump -h host1 dbname | psql -h host2 dbname
# Rollen exportieren:
pg_dumpall --roles-only >/tmp/roles.sql
# Restaurieren:
sudo -u postgres psql postgres < /tmp/roles.sql
</pre>
</pre>
== Backup und Restore ==
Formate:
* c custom (ist komprimiert)
* d=Verzeichnis
* t tar
* p plain text


= Sequenzen (lastval) =
= Sequenzen (lastval) =
Zeile 352: Zeile 349:
SELECT max(configuration_id) from configurations;
SELECT max(configuration_id) from configurations;
ALTER SEQUENCE configurations_configuration_id_seq MINVALUE 2000;
ALTER SEQUENCE configurations_configuration_id_seq MINVALUE 2000;
</pre>
<pre>
CREATE SEQUENCE IF NOT EXISTS configurations_configuration_id_seq;
SELECT setval('configurations_configuration_id_seq', (SELECT 10+max(configuration_id) FROM configurations));
ALTER TABLE objects ALTER COLUMN configuration_id SET DEFAULT nextval('configurations_configuration_id_seq');
</pre>
* SqlSeq.py
<pre>
#! /usr/bin/python3
import sys
def Create(table: str, id: str):
  seq = f'{table}_{id}_seq'
  print(f'''
CREATE SEQUENCE IF NOT EXISTS {seq};
SELECT setval('{seq}', (SELECT 10+max({id}) FROM {table}));
ALTER TABLE objects ALTER COLUMN {id} SET DEFAULT nextval('{seq}');
''')
def main(argv):
  if len(argv) < 1:
    print("+++ missing table")
  else:
    table = argv[0]
    id = argv[1] if len(argv) > 1 else table[0:-1] + "_id"
    Create(table, id)
main(sys.argv[1:])
</pre>
</pre>

Bitte kopiere keine Webseiten, die nicht deine eigenen sind, benutze keine urheberrechtlich geschützten Werke ohne Erlaubnis des Urhebers!
Du gibst uns hiermit deine Zusage, dass du den Text selbst verfasst hast, dass der Text Allgemeingut (public domain) ist, oder dass der Urheber seine Zustimmung gegeben hat. Falls dieser Text bereits woanders veröffentlicht wurde, weise bitte auf der Diskussionsseite darauf hin. Bitte beachte, dass alle Info-Theke-Beiträge automatisch unter der „Gemeinfreiheit“ stehen (siehe Info-Theke:Urheberrechte für Einzelheiten). Falls du nicht möchtest, dass deine Arbeit hier von anderen verändert und verbreitet wird, dann klicke nicht auf „Seite speichern“.

Abbrechen Bearbeitungshilfe (wird in einem neuen Fenster geöffnet)