Klingt vielleicht etwas konfus, vor allem weil ich nicht sehr tief in der Materie drin bin, gerade deshalb brauche ich einen kurzen Start-Tip, der mich auf den richtigen Weg bringt:
Also ich hab Daten in einer Postgres-DB, dann habe ich einen Webserver, den ich statt über seine GUI über seine REST-Schnittstelle steuern will. Die Dokumentation dort beschränkte sich auf den Einsatz von cURL. Das habe ich auch getestet und es funktioniert prima.
Nun will ich die beiden Welten sinnvoll miteinander verbinden, und eben parametrisiert (mit DB-Inhalten befüllte) Schnittstellenkommandos verschicken. Was macht an dieser Stelle wirklich Sinn. Es soll einfach und schlank sein.
Mein technischer Hintergrund: Gute SQL und PL/PGSQL-Kenntnisse, sanfte PERL-Erfahrung, kein Java, kein PHP und gerne batchmäßig auf der Kommandozeile unterwegs…
Hmm, ist wohl schwieriger auszudrücken als gedacht…
Ich hab per Kommandozeile erfolgreich verschiedene PUT, POST, etc. Kommandos mit cURL an einen Webserver geschickt und ihm so gesagt, was er tun soll.
Nun will ich diese statischen Befehle (die momentan außerhalb der DB liegen) mit variablem Leben füllen, also einfach Inhalte (bspw. Tabellennamen oder Feldinhalte) aus einer Postgres-DB dort integrieren. Konkret würde ich zum Beispiel gerne einen Schleifendurchlauf über alle Tabellen aus pg_tables jeweils als eigenes POST-Kommando überführen.
Ich hab gesehen, dass es mal ein pg_curl als plugin gab, aber der Link ist tot. Es muß auch nicht unbedingt direkt aus der Datenbank heraus sein. Ich stelle mir ein Skript vor, welches die Daten abfragt und dann an die REST-Schnittstelle sendet. cURL ist dabei nicht gesetzt, sondern nur ein Beispiel an dem ich gut verstanden habe wie es funktioniert und gleichzeitig testen konnte. Hat insgesamt vielleicht auch nicht allzuviel mit DB-Problematik zu tun…
Ich brauche einen Tip, mit welcher Sprache und wo ich das Beschriebene umsetzen kann.
Mit PL/PGSQL habe ich keine Möglichkeit gefunden irgendwas an eine Shell weiterzugeben oder dort auszuführen. Es muß nicht in der DB laufen, geht auch außerhalb. Und es muß auch nicht cURL sein, obwohl ich froh wäre, wenn ich das direkt ansteuern könnte. Meine Vermutung ist, dass PERL genau das richtige sein könnte. Aber ich bin mir eben nicht sicher.
kretschmer@tux:~$ psql test -c "begin; create table rest (id int, command text); commit;"
COMMIT
kretschmer@tux:~$ psql test -c "begin; insert into rest (id,command) values (1, 'date'); commit;"
COMMIT
kretschmer@tux:~$ `psql test -tc 'select command from rest where id=1'`
Do 11. Mär 17:43:48 CET 2010
kretschmer@tux:~$