slony Funktionen

Hiho, ich hab jetzt noch nen bisschen mit Slony rumgespielt und möchte jetzt einer Tabelle eine Spalte hinzufügen. Damit das auch auf den Slaves übernommen wird muss ich das ja mit der Funktion ddlscript(setid, anweisung, only_on_node) ausführen.

Die Funktion gibts ja jetzt noch nicht also hab ich diese einfach mal in meiner Datenbank angelegt. Funktioniert allerdings auch nicht, ich denke mal dass das auch nicht richtig so war.
In der Slony-Admin Anleitung ( die übrigens sehr bescheiden geschrieben ist :p ) finde ich noch: EXECUTE SCRIPT(setid, anweisung, only_on_node); … funktioniert natürlich auch nicht (“prepared statement “script” does not exist”);

Was muss ich denn nun anstellen damit ich die Funktionen die auch in der Doku sind benutzen kann?

Nein.

Die Funktion gibts ja jetzt noch nicht also hab ich diese einfach mal in meiner Datenbank angelegt. Funktioniert allerdings auch nicht, ich denke mal dass das auch nicht richtig so war.

Ja.

In der Slony-Admin Anleitung ( die übrigens sehr bescheiden geschrieben ist > :p > ) finde ich noch: EXECUTE SCRIPT(setid, anweisung, only_on_node); … funktioniert natürlich auch nicht (“prepared statement “script” does not exist”);

Was muss ich denn nun anstellen damit ich die Funktionen die auch in der Doku sind benutzen kann?

Du erstellst ein Script, das ganz normal Deine DDL-Befehle enthält. Dann erstellst Du ein slonik-script, welches ein execute script - Befehlt enthält. Dieser Befehl wiederum enthält den Pfad zu Deinem Script.

Andreas

In phpPgAdmin gibt es ja die Möglichkeit Slony auch zu nutzen, dort wird dann immer versucht direkt auf die plpgsql funktionen zuzugreifen.
Das Script versucht dann immer auf die Funktionen über

“_clustername”.ddlscript(int, text, int) drauf zuzugreifen. Für meine eigene Datenbank kann ich die Scripte anlegen, das scheint aber nicht zu funktionieren. Kann ich also auch die Funktionen direkt für den Cluster anlegen?


Die Variante von der Konsole aus funktioniert auf jedenfall THx :slight_smile:
aber ist nicht so elegant bei jeder neuen Spalte immer erst Dateien zu erstellen.