Erweiterung aktualisieren und verwenden PLV8 - Amazon Relational Database Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erweiterung aktualisieren und verwenden PLV8

PLV8ist eine vertrauenswürdige Javascript-Spracherweiterung für SQL Postgre. Sie können sie für gespeicherte Prozeduren, Trigger und anderen prozeduralen Code verwenden, von dem aus aufgerufen werden kann. SQL Diese Spracherweiterung wird von allen aktuellen Versionen von SQL Postgre unterstützt.

Wenn Sie Postgre verwenden PLV8und SQL auf eine neue PLV8 Version aktualisieren, nutzen Sie sofort die Vorteile der neuen Erweiterung. Führen Sie die folgenden Schritte aus, um Ihre Katalogmetadaten mit der neuen Version von PLV8 zu synchronisieren. Diese Schritte sind optional, aber wir empfehlen, sie durchzuführen, um Warnungen aufgrund fehlender Übereinstimmung von Metadaten zu vermeiden.

Durch den Upgrade-Vorgang werden alle Ihre vorhandenen PLV8 Funktionen gelöscht. Wir empfehlen Ihnen daher, vor dem Upgrade einen Snapshot Ihrer RDS for SQL Postgre-DB-Instance zu erstellen. Weitere Informationen finden Sie unter Erstellen eines DB-Snapshots für eine Single-AZ-DB-Instance für Amazon RDS.

Um Ihre Katalog-Metadaten mit einer neuen Version von zu synchronisieren PLV8
  1. Überprüfen, ob Sie ein Update benötigen. Führen Sie dazu den folgenden Befehl aus, während Sie mit Ihrer Instance verbunden sind.

    SELECT * FROM pg_available_extensions WHERE name IN ('plv8','plls','plcoffee');

    Wenn Ihre Ergebnisse Werte für eine installierte Version enthalten, die niedriger ist als die Standardversion, setzen Sie dieses Verfahren fort, um Ihre Erweiterungen zu aktualisieren. Die folgende Ergebnismenge beispielsweise deutet darauf hin, dass Sie ein Update vornehmen sollten.

    name | default_version | installed_version | comment --------+-----------------+-------------------+-------------------------------------------------- plls | 2.1.0 | 1.5.3 | PL/LiveScript (v8) trusted procedural language plcoffee| 2.1.0 | 1.5.3 | PL/CoffeeScript (v8) trusted procedural language plv8 | 2.1.0 | 1.5.3 | PL/JavaScript (v8) trusted procedural language (3 rows)
  2. Erstellen Sie einen Snapshot Ihrer RDS für SQL Postgre-DB-Instance, falls Sie dies noch nicht getan haben. Sie können die folgenden Schritte fortsetzen, während der Snapshot erstellt wird.

  3. Ermitteln Sie die Anzahl der PLV8 Funktionen in Ihrer DB-Instance, sodass Sie nach dem Upgrade überprüfen können, ob sie alle vorhanden sind. Die folgende SQL Abfrage gibt beispielsweise die Anzahl der in plv8, plcoffee und plls geschriebenen Funktionen zurück.

    SELECT proname, nspname, lanname FROM pg_proc p, pg_language l, pg_namespace n WHERE p.prolang = l.oid AND n.oid = p.pronamespace AND lanname IN ('plv8','plcoffee','plls');
  4. Erstellen Sie mit pg_dump eine Dump-Datei, die nur das Schema enthält. Erstellen Sie beispielsweise eine Datei auf Ihrem Client-Computer im Verzeichnis /tmp.

    ./pg_dump -Fc --schema-only -U master postgres >/tmp/test.dmp

    In diesem Beispiel werden die folgenden Optionen verwendet:

    • -Fc – Benutzerdefiniertes Format

    • --schema-only – Erstellen Sie nur einen Dump von Befehlen, die zum Erstellen des Schemas erforderlich sind (in diesem Fall Funktionen)

    • -U— Der Hauptbenutzername RDS

    • database – Der Datenbankname für unsere DB-Instance

    Weitere Informationen zu pg_dump finden Sie unter pg_dump in der Postgre-Dokumentation. SQL

  5. Extrahieren Sie die "CREATEFUNCTION" DDL -Anweisung, die in der Dump-Datei enthalten ist. Im folgenden Beispiel wird der grep Befehl verwendet, um die DDL Anweisung zu extrahieren, mit der die Funktionen erstellt wurden, und sie in einer Datei zu speichern. Sie verwenden diese in nachfolgenden Schritten, um die Funktionen neu zu erstellen.

    ./pg_restore -l /tmp/test.dmp | grep FUNCTION > /tmp/function_list/

    Weitere Informationen zu pg_restore finden Sie unter pg_restore in der Postgre-Dokumentation. SQL

  6. Verwerfen Sie die Funktionen und Erweiterungen. Im folgenden Beispiel werden alle basierten Objekte gelöscht. PLV8 Die Option cascade stellt sicher, dass alle Abhängigkeiten verworfen werden.

    DROP EXTENSION plv8 CASCADE;

    Wenn Ihre SQL Postgre-Instanz Objekte enthält, die auf plcoffee oder plls basieren, wiederholen Sie diesen Schritt für diese Erweiterungen.

  7. Erstellen Sie die Erweiterungen. Das folgende Beispiel erstellt die plv8-, plcoffee- und plls-Erweiterungen.

    CREATE EXTENSION plv8; CREATE EXTENSION plcoffee; CREATE EXTENSION plls;
  8. Erstellen Sie die Funktionen unter Verwendung der Dump-Datei und der „Treiber“-Datei.

    Das folgende Beispiel erstellt die zuvor extrahierten Funktionen neu.

    ./pg_restore -U master -d postgres -Fc -L /tmp/function_list /tmp/test.dmp
  9. Prüfen Sie mithilfe der folgenden Abfrage, ob all Ihre Funktionen neu erstellt wurden.

    SELECT * FROM pg_available_extensions WHERE name IN ('plv8','plls','plcoffee');

    Die PLV8 Version 2 fügt Ihrer Ergebnismenge die folgende zusätzliche Zeile hinzu:

    proname | nspname | lanname ---------------+------------+---------- plv8_version | pg_catalog | plv8