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

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

Jika Anda menggunakan PLV8dan meningkatkan PostgreSQL ke versi PLV8 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 pemutakhiran menjatuhkan semua PLV8 fungsi Anda yang ada. Oleh karena itu, kami menyarankan Anda membuat snapshot dari instans DB RDS for PostgreSQL Anda sebelum meningkatkan. Untuk informasi selengkapnya, lihat Membuat snapshot DB untuk instans DB AZ tunggal untuk Amazon RDS.

penting

Dimulai dengan PostgreSQL versi 18, Amazon RDS for PostgreSQL akan menghentikan ekstensi dan PostgreSQL. plcoffee plls Kami menyarankan Anda berhenti menggunakan CoffeeScript dan LiveScript dalam aplikasi Anda untuk memastikan Anda memiliki jalur peningkatan untuk upgrade versi engine masa depan.

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 instans DB RDS for PostgreSQL Anda jika Anda belum melakukannya. 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, kueri SQL berikut mengembalikan jumlah fungsi yang ditulis dalam plv8, plcoffee, and 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 utama RDS

    • database – Nama untuk basis data di instans DB Anda

    Untuk informasi selengkapnya, lihat pg_dump dalam dokumentasi PostgreSQL.

  5. Ekstrak pernyataan DDL "CREATE FUNCTION" yang ada di berkas dump. Contoh berikut menggunakan perintah grep untuk mengekstrak pernyataan DDL yang menciptakan 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 pada pg_restore, lihat pg_restore dalam dokumentasi PostgreSQL.

  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 instans PostgreSQL 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');

    PLV8 Versi 2 menambahkan baris tambahan berikut ke set hasil Anda:

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