Mise à niveau et utilisation de l'PLV8extension - Amazon Relational Database Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Mise à niveau et utilisation de l'PLV8extension

PLV8est une extension de langage Javascript fiable pour PostgreSQL. Vous pouvez l'utiliser pour les procédures stockées, les déclencheurs et tout autre code procédural appelable depuisSQL. Cette extension de langue est prise en charge par toutes les versions actuelles de PostgreSQL.

Si vous utilisez PLV8et mettez à jour Postgre SQL vers une nouvelle PLV8 version, vous profitez immédiatement de la nouvelle extension. Procédez comme suit pour synchroniser les métadonnées de votre catalogue avec la nouvelle version dePLV8. Ces étapes sont facultatives, mais nous vous recommandons vivement de les compléter afin d'éviter des avertissements de décalage des métadonnées.

Le processus de mise à niveau supprime toutes vos PLV8 fonctions existantes. Nous vous recommandons donc de créer un instantané de votre SQL instance de base de données RDS for Postgre avant la mise à niveau. Pour de plus amples informations, veuillez consulter Création d'un instantané de base de données pour une instance de base de données mono-AZ pour Amazon RDS.

Pour synchroniser les métadonnées de votre catalogue avec une nouvelle version de PLV8
  1. Vérifiez que vous devez mettre à jour. Pour ce faire, exécutez la commande suivante tout en étant connecté à votre instance.

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

    Si les résultats contiennent des valeurs pour une version installée avec un numéro inférieur à celui de la version par défaut, poursuivez cette procédure pour mettre à jour vos extensions. Par exemple, l'ensemble de résultats suivant indique que vous devez procéder à la mise à jour.

    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. Créez un instantané de votre SQL instance de base de données RDS pour Postgre si vous ne l'avez pas encore fait. Vous pouvez poursuivre avec les étapes suivantes tandis que l'instantané est en cours de création.

  3. Déterminez le nombre de PLV8 fonctions de votre instance de base de données afin de vérifier qu'elles sont toutes en place après la mise à niveau. Par exemple, la SQL requête suivante renvoie le nombre de fonctions écrites en plv8, plcoffee et 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. Utiliser pg_dump pour créer un fichier de vidage schema-only. Par exemple, créez un fichier sur votre ordinateur client dans le répertoire /tmp.

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

    Cet exemple utilise les options suivantes :

    • -Fc : format personnalisé

    • --schema-only : supprime uniquement les commandes nécessaires à la création du schéma (les fonctions dans ce cas)

    • -U— Le nom d'utilisateur RDS principal

    • database : le nom de base de données dans votre instance de base de données

    Pour plus d'informations sur pg_dump, consultez pg_dump dans la documentation de Postgre. SQL

  5. Extrayez l'DDLinstruction CREATE FUNCTION « » présente dans le fichier de vidage. L'exemple suivant utilise la grep commande pour extraire l'DDLinstruction qui crée les fonctions et les enregistrer dans un fichier. Vous l'utiliserez dans les étapes suivantes pour recréer les fonctions.

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

    Pour plus d'informations sur pg_restore, consultez pg_restore dans la documentation de Postgre. SQL

  6. Supprimez les fonctions et les extensions. L'exemple suivant supprime tous les objets PLV8 basés. L'option cascade garantit que les objets dépendants sont supprimés.

    DROP EXTENSION plv8 CASCADE;

    Si votre SQL instance Postgre contient des objets basés sur plcoffee ou plls, répétez cette étape pour ces extensions.

  7. Créez les extensions. L'exemple suivant crée les extensions plv8, plcoffee et plls.

    CREATE EXTENSION plv8; CREATE EXTENSION plcoffee; CREATE EXTENSION plls;
  8. Créez les fonctions à l'aide du fichier de vidage et du fichier « pilote ».

    L'exemple suivant recrée les fonctions que vous avez extraites précédemment.

    ./pg_restore -U master -d postgres -Fc -L /tmp/function_list /tmp/test.dmp
  9. Vérifiez que toutes vos fonctions ont été recréées à l'aide de la requête suivante.

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

    La PLV8 version 2 ajoute la ligne supplémentaire suivante à votre jeu de résultats :

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