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.
PLV8 est une extension de langage Javascript fiable pour PostgreSQL. Vous pouvez l'utiliser pour des procédures stockées, des déclencheurs et tout autre code procédural pouvant être appelé depuis SQL. Cette extension de langage est prise en charge par toutes les versions actuelles de PostgreSQL.
Si vous utilisez PLV8
Le processus de mise à niveau supprime toutes vos PLV8 fonctions existantes. Nous vous recommandons donc de créer un instantané de votre instance de base de données RDS for PostgreSQL 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.
Important
À partir de la version 18 de PostgreSQL, Amazon RDS for PostgreSQL déconseillera les extensions et PostgreSQL. plcoffee
plls
Nous vous recommandons de cesser d'utiliser CoffeeScript et LiveScript dans vos applications afin de disposer d'un chemin de mise à niveau pour les futures mises à niveau des versions du moteur.
Pour synchroniser les métadonnées de votre catalogue avec une nouvelle version de PLV8
-
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)
-
Créez un instantané de votre instance de base de données RDS for PostgreSQL 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.
-
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 requête SQL suivante renvoie le nombre de fonctions écrites en pvl8, 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');
-
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 de l'utilisateur principal RDS -
database
: le nom de base de données dans votre instance de base de données
Pour plus d'informations sur pg_dump, veuillez consulter la section pg_dump
de la documentation PostgreSQL. -
-
Extrayez la déclaration DDL « CREATE FUNCTION » présente dans le fichier de vidage. L'exemple suivant utilise la commande
grep
pour extraire l'instruction DDL qui crée les fonctions et les enregistre 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, veuillez consulter la section pg_restore
de la documentation PostgreSQL. -
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 instance PostgreSQL contient des objets basés sur plcoffee ou plls, répétez l'étape pour ces extensions.
-
Créez les extensions. L'exemple suivant crée les extensions plv8, plcoffee et plls.
CREATE EXTENSION plv8; CREATE EXTENSION plcoffee; CREATE EXTENSION plls;
-
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
-
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