Aggiornamento e utilizzo dell'estensione PLV8 - Amazon Relational Database Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Aggiornamento e utilizzo dell'estensione PLV8

PLV8è un'estensione affidabile del linguaggio Javascript per Postgre. SQL È possibile utilizzarlo per procedure memorizzate, trigger e altro codice procedurale da cui è possibile richiamare. SQL Questa estensione del linguaggio è supportata da tutte le versioni correnti di Postgre. SQL

Se usi PLV8e aggiorni Postgre SQL a una nuova PLV8 versione, sfrutti immediatamente la nuova estensione. Segui i passaggi seguenti per sincronizzare i metadati del catalogo con la nuova versione di. PLV8 Queste fasi sono facoltative ma fortemente consigliate per evitare avvisi di mancata corrispondenza dei metadati.

Il processo di aggiornamento elimina tutte le funzioni esistentiPLV8. Pertanto, ti consigliamo di creare un'istantanea della tua istanza SQL DB RDS for Postgre prima dell'aggiornamento. Per ulteriori informazioni, consulta Creazione di uno snapshot DB per un'istanza DB Single-AZ per Amazon RDS.

Per sincronizzare i metadati del catalogo con una nuova versione di PLV8
  1. Verificare la necessità dell'aggiornamento. Per procedere, eseguire il comando seguente durante la connessione alla propria istanza.

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

    Se i risultati contengono valori per una versione installata inferiore rispetto alla versione predefinita, continuare con la procedura per aggiornare le estensioni. Ad esempio, il seguente set di risultati indica che è necessario eseguire l'aggiornamento:

    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. Crea un'istantanea della tua istanza di RDS For Postgree SQL DB se non l'hai ancora fatto. Puoi continuare con la seguente procedura una volta creata la snapshot.

  3. Ottieni un conteggio del numero di PLV8 funzioni nella tua istanza DB in modo da poter verificare che siano tutte a posto dopo l'aggiornamento. Ad esempio, la seguente SQL query restituisce il numero di funzioni scritte in plv8, plcoffee e plls.

    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. Utilizzare pg_dump per creare un file dump solo schema. Ad esempio, crea un file nel computer client nella directory /tmp.

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

    In questo esempio vengono utilizzate le seguenti opzioni:

    • -Fc – Formato personalizzato

    • --schema-only – Esecuzione del dump solo dei comandi necessari per creare lo schema (funzioni in questo caso)

    • -U— Il nome utente principale RDS

    • database – Nome del database nell'istanza database

    Per ulteriori informazioni su pg_dump, vedi pg_dump nella documentazione di Postgre. SQL

  5. Estrai l'istruzione "" presente nel file di dump. CREATE FUNCTION DDL L'esempio seguente utilizza il grep comando per estrarre l'DDListruzione che crea le funzioni e salvarle in un file. Verrà utilizzata nelle fasi successive per ricreare le funzioni.

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

    Per ulteriori informazioni su pg_restore, vedi pg_restore nella documentazione di Postgre. SQL

  6. Eliminare le funzioni e le estensioni. L'esempio seguente elimina tutti gli oggetti basati. PLV8 L'opzione a cascata assicura l'eliminazione di ogni elemento dipendente.

    DROP EXTENSION plv8 CASCADE;

    Se l'SQListanza di Postgre contiene oggetti basati su plcoffee o plls, ripeti questo passaggio per tali estensioni.

  7. Creare le estensioni. Il seguente esempio crea le estensioni plv8, plcoffee e plls.

    CREATE EXTENSION plv8; CREATE EXTENSION plcoffee; CREATE EXTENSION plls;
  8. Creare le funzioni utilizzando il file dump e il file "driver".

    Il seguente esempio ricrea le funzioni estratte in precedenza.

    ./pg_restore -U master -d postgres -Fc -L /tmp/function_list /tmp/test.dmp
  9. Verifica che tutte le funzioni siano state ricreate utilizzando la seguente query.

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

    La PLV8 versione 2 aggiunge la seguente riga aggiuntiva al set di risultati:

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