Mühelose PLV8-Installation auf PostgreSQL
Entdecken Sie unser optimiertes Docker-Image für PLV8, das jetzt die PostgreSQL-Versionen 17.0 und 16.4 auf arm64 und Mac M1, M2, M3 unterstützt und mit Debian/Alpine für eine vereinfachte Installation erstellt wurde
Unterstützt auf:
oder
PLV8 für PostgreSQL vereint die Kraft von JavaScript und SQL und bietet Entwicklern Flexibilität, minimales Codieren, hohe Leistung und endlose Möglichkeiten.
Einfache Installation und Integration
Breite architektonische Unterstützung
Zeitsparende
Effizienz
Kontinuierliche Unterstützung und Updates
Erste Schritte
Dieses Bild wird auf die gleiche Weise installiert wie das Standard-Postgres-Bild, wobei der einzige Unterschied die Hinzufügung der PLV8-Erweiterung ist.

Ein Skript zur Erstellung der Erweiterung sollte zuerst ausgeführt werden:
CREATE EXTENSION plv8;
KOPIEREN
Dann können Sie SQL-Abfragen durchführen:
DO $$
     plv8.elog(NOTICE, plv8.version);
$$ LANGUAGE plv8;
KOPIEREN
Danach können Sie die Version der installierten PLV8-Erweiterung sehen.
Bild-Modifikationen
Aufgrund des BigInt-Serialisierungsproblems gibt es dieses Bild in zwei Varianten:
Standard-Build (standardmäßig werden in PLV8 v3.0.0 und höher BigInt-Zahlen in Zeichenfolgen konvertiert)
Spezielle Modifikation mit BigInt-Serialisierungsunterstützung
CREATE TABLE test
(
     id SERIAL PRIMARY KEY NOT NULL,
     comment text
);

INSERT INTO test(comment)
        
VALUES ('abc'), ('def');

CREATE OR REPLACE FUNCTION get_count(table_name text)
     RETURNS jsonb
     LANGUAGE plv8 IMMUTABLE AS
$$
        const sql = `SELECT COUNT(*) AS cnt FROM "${table_name}"`;
        const data = plv8.execute(sql);
        return data[0];
$$;

SELECT * FROM get_count('test');

KOPIEREN
Testen Sie die Unterschiede in der Arbeit:
Ergebnisse:
sibedge/postgres-plv8: {"cnt": "2"}
sibedge/postgres-plv8-bigint: {"cnt": 2}
CREATE TABLE test
(
id SERIAL PRIMARY KEY NOT NULL,
comment text
);

INSERT INTO test(comment)
VALUES ('abc'), ('def');

CREATE OR REPLACE FUNCTION get_count(table_name text)
RETURNS jsonb
LANGUAGE plv8 IMMUTABLE AS
$$
const sql = `SELECT COUNT(*) AS cnt FROM "${table_name}"`;
const data = plv8.execute(sql);
return data[0];
$$;

SELECT * FROM get_count('test');

Benötigen Sie ein benutzerdefiniertes Docker-Image?
Fordern Sie eine maßgeschneiderte Erstellung entsprechend Ihren individuellen Spezifikationen an.
Unser Team steht bereit, um die perfekte Lösung für Sie zu entwickeln.
mit ♥ von sibedge