Memutakhirkan dan menggunakan ekstensi PLV8 - Layanan Basis Data Relasional Amazon

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Memutakhirkan dan menggunakan ekstensi PLV8

PLV8adalah ekstensi bahasa Javascript tepercaya untuk PostgreSQL. Anda dapat menggunakannya untuk prosedur tersimpan, pemicu, dan kode prosedural lainnya yang dapat dipanggil. SQL Ekstensi bahasa ini didukung oleh semua rilis SQL Postgre saat ini.

Jika Anda menggunakan PLV8dan meningkatkan Postgre SQL ke PLV8 versi baru, Anda segera memanfaatkan ekstensi baru. Ambil langkah-langkah berikut untuk menyinkronkan metadata katalog Anda dengan versi baru. PLV8 Langkah-langkah ini opsional, tetapi kami sangat menyarankan Anda menyelesaikannya untuk menghindari peringatan ketidakcocokan metadata.

Proses upgrade menjatuhkan semua PLV8 fungsi Anda yang ada. Oleh karena itu, kami menyarankan Anda membuat snapshot dari instans Postgre SQL DB Anda RDS sebelum memutakhirkan. Untuk informasi selengkapnya, lihat Membuat snapshot DB untuk instans DB AZ tunggal untuk Amazon RDS.

Untuk menyinkronkan metadata katalog Anda dengan versi baru PLV8
  1. Verifikasi bahwa Anda perlu memperbarui. Untuk melakukannya, jalankan perintah berikut saat terhubung dengan instans Anda.

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

    Jika hasil Anda berisi nilai untuk versi terinstal yang lebih rendah dari versi default, lanjutkan dengan prosedur ini untuk memperbarui ekstensi Anda. Misalnya, kumpulan hasil berikut menunjukkan bahwa Anda harus memperbarui.

    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. Buat snapshot dari instance Postgre SQL DB Anda jika Anda belum melakukannya. RDS Anda dapat melanjutkan dengan langkah-langkah berikut saat snapshot sedang dibuat.

  3. Dapatkan hitungan jumlah PLV8 fungsi dalam instans DB Anda sehingga Anda dapat memvalidasi bahwa semuanya ada setelah peningkatan. Misalnya, SQL query berikut mengembalikan jumlah fungsi yang ditulis dalam plv8, plcoffee, dan 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. Gunakan pg_dump untuk membuat file dump hanya untuk skema. Misalnya, buat file di mesin klien Anda di direktori /tmp.

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

    Contoh ini menggunakan hal berikut:

    • -Fc – Format kustom

    • --schema-only – Buang perintah yang diperlukan untuk membuat skema (fungsi dalam kasus ini)

    • -U— Nama pengguna RDS master

    • database – Nama untuk basis data di instans DB Anda

    Untuk informasi selengkapnya tentang pg_dump, lihat pg_dump di dokumentasi Postgre. SQL

  5. Ekstrak DDL pernyataan CREATE FUNCTION "" yang ada di file dump. Contoh berikut menggunakan grep perintah untuk mengekstrak DDL pernyataan yang membuat fungsi dan menyimpannya ke file. Anda menggunakan ini dalam langkah-langkah berikutnya untuk membuat ulang fungsi.

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

    Untuk informasi selengkapnya tentang pg_restore, lihat pg_restore di dokumentasi Postgre. SQL

  6. Hapus sementara fungsi dan ekstensi. Contoh berikut menjatuhkan objek PLV8 berbasis apa pun. Opsi kaskade memastikan bahwa ketergantungan apa pun dapat dihapus sementara.

    DROP EXTENSION plv8 CASCADE;

    Jika SQL instance Postgre Anda berisi objek berdasarkan plcoffee atau plls, ulangi langkah ini untuk ekstensi tersebut.

  7. Buat ekstensi. Contoh berikut untuk membuat ekstensi plv8, plcoffee, dan plls.

    CREATE EXTENSION plv8; CREATE EXTENSION plcoffee; CREATE EXTENSION plls;
  8. Buat fungsi menggunakan file dump dan file "driver".

    Contoh berikut membuat ulang fungsi yang Anda ekstrak sebelumnya.

    ./pg_restore -U master -d postgres -Fc -L /tmp/function_list /tmp/test.dmp
  9. Verifikasi bahwa semua fungsi Anda telah dibuat ulang dengan menggunakan kueri berikut.

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

    PLV8Versi 2 menambahkan baris tambahan berikut ke set hasil Anda:

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