Integraci贸n con otros lenguajes

16/34

Lectura

Como la mayor铆a de las bases de datos, PostgreSQL cuenta con conectores para diferentes lenguajes de programaci贸n, de tal forma que si trabajas con Python, PHP, Java, JavaScript y todos sus frameworks, exista una forma de extraer datos de PostgreSQL y posteriormente utilizar las propiedades de los lenguajes procedurales para transformar y utilizar los datos.

...

Reg铆strate o inicia sesi贸n para leer el resto del contenido.

Aportes 27

Preguntas 2

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Con raz贸n PostgreSQL presume de ser el mejor manejador de bases de datos.

Para los que, al igual que yo, tuvieron problemas al ejecutar la consulta:

CREATE EXTENSION plpythonu

Antes de instalar la extensi贸n hay que asegurarse de tener Python y haber instalado el paquete postgresql-plpython.
En mi caso estoy trabajando con el contenedor 鈥減ostgres鈥 en Docker, mismo que no trae instalado Python. Lo que hice fue:

#Para instalar Python en su versin 3.7
apt-get install python3  

#Para instalar el paquete postgresql-plpython
#En mi caso tengo aversi贸n 13 de pgsql
#La nomenclatura deber铆a estar en funci贸n dela versin de Python y de la versin de pgsql con la que se trabaja
apt-get install postgresql-plpython3-13

Hecho eso ya se puede ejecutar la consulta:

CREATE EXTENSION plpython3u
#Con el 3 casi al final para denotar que se trabaja con la versin 3.x de python

INSTALACI脫N EN WINDOWS DE POSTGRESQL + Python3 + plpython3u

  1. Ir a
C:\Program Files\PostgreSQL\[version]\doc\installation-notes.html

Revisar que versi贸n de Python se us贸 para compilar tu versi贸n de PostgreSQL, en mi caso es Python3鈥7

  1. Buscar esa versi贸n e instalarla:

Python para Windows

  1. Registrar en el PATH las carpetas
C:\Users\[usuario]\AppData\Local\Programs\Python\Python37

C:\Users\[usuario]\AppData\Local\Programs\Python\Python37\scripts
  1. Copiar el archivo python37.dll de:
C:\Users\[usuario]\AppData\Local\Programs\Python\Python37

en

C:\Windows\System32

Fuente:
stackoverflow

驴Se pueden importar librer铆as de python dentro del bloque?, 驴Se podr铆an generar archivos desde el bloque de python y guardarlos en el disco?

Para los que no les vale, comparto el comentario de un compa帽ero, deber铆a salirles igual que a mi en el feed de comentarios pero bueno. Aqu铆 est谩. Me funcion贸, espero igual a ustedes. Gracias al compa帽ero que lo comparti贸.

INSTALACI脫N EN WINDOWS DE POSTGRESQL + Python3 + plpython3u

Ir a
C:\Program Files\PostgreSQL[version]\doc\installation-notes.html
Revisar que versi贸n de Python se us贸 para compilar tu versi贸n de PostgreSQL, en mi caso es Python3鈥7

Buscar esa versi贸n e instalarla:
Python para Windows

Registrar en el PATH las carpetas
C:\Users[usuario]\AppData\Local\Programs\Python\Python37

C:\Users[usuario]\AppData\Local\Programs\Python\Python37\scripts
Copiar el archivo python37.dll de:
C:\Users[usuario]\AppData\Local\Programs\Python\Python37
en

C:\Windows\System32
Fuente:
stackoverflow

HELP!

Logr茅 por fin crear la extensi贸n plppython3u, pero me desconecta de la base de dato cada vez que corro la funci贸n y no logr贸 encontrar c贸mo solucionarlo.

Super, no sab铆a que Postgresql podia trabajar con Python

Para los que tengan Windows y hayan seguido las instrucciones de los otros compa帽eros, y a煤n as铆 sale error, intenten la segunda opci贸n:

CREATE EXTENSION plpythonu;
CREATE EXTENSION plpython3u;

Con la primera l铆nea tengo el error:

ERROR:  no se pudo acceder al archivo 芦$libdir/plpython2禄: No such file or directory
SQL state: 58P01

La segunda me funcion贸 bien.

Hola compa帽eros

No puedo correr la PL/Python. Postgre se desconecta cada que quiero correr el bloque de codigo

Ya cree la extensi贸n y no hubo ningun error.

Alguna ayuda?
![]()

Llegue con la soluciona para casi todos los comentarios que no pudieron ejecutar el PL/Python, lo logre con un dockerfile:

archivo dockerfile

FROM postgres:13

RUN apt-get update && apt-get install -y postgresql-plpython3-13

archivo docker-compose.yml

version: '3.9'

services:
  db:
    build: .
    container_name: postgres
    restart: always
    #1)Que es la imagen en docker? Bueno, en este caso, estariamos obteniendo de manera PUBLICA la IMAGEN es decir... LA APLICACION postgres!
    #env_file:
    #  - .env
    environment:
      - POSTGRES_DB=${POSTGRES_DB}
      - POSTGRES_USER=${POSTGRES_USER}
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
    ports:
      - 5432:5432
      #5) Aca es donde conecto mi servidor con mis datos, ent este caso como es local, es decir, no conecto con un servidor en la nube, tan solo uno miData:conElServidorQueConectare  En este caso ambos son 5432, ya que estoy conectando mi data a mi propio servidor local de mi pc, nignnuno de la nube 
    volumes:
    #5) El volumes nos sirve para crear persistencia, es decir, "Todo lo que yo tenga en mi contendor, quiero almacenarlo YO en un archivo para mayor seguridad".
      - /postgres-data:/var/lib/postgresql/data
      #6) El ./postgres_data significa que justamtene el archivo que se creara para que se guarde la data esta en la carpeta ./postgres_data, (a su vez debe ser privadad, asi que no la subas a github) Mientras que por otro lado tenemos el /var/lib/postgresql/data, que hace esta ruta? Bueno simplemente hay que entender que esta ruta conecta con la base de datos, es decir, los datos estan guardados en esta ruta en postgresql... POR LO TANTO NOSOTROS PARA CREAR PERSISTENCIA ABSROBEMOS LA DATA DE VAR/LIB/POSTGRESQLETC Y LA LLEVAMOS A POSTGRES_DATA. SABIENDO QUE NO DEBE IR A GITHUB.

      #7) Es importante saber que la ruta /var/lib/postgresql/data es de donde obtenemos la imagen. Pero esta ruta puede variar por cuestion de la empresa queu crea la db y demas, entonces la manera de siempre tener esta ruta lista para absorber la imagen es consultando la documentacion de hub.docker.com
  pgadmin:
    image: dpage/pgadmin4
    environment:
      - [email protected]
      - PGADMIN_DEFAULT_PASSWORD=04145893431
    ports:
      - 5050:80
  #Metabase para visualizaciones
  dataviz:
    image: metabase/metabase
    container_name: metabase
    restart: always
    environment:
      - MB_DB_TYPE=postgres
      - MB_DB_DBNAME=${POSTGRES_DB}
      - MB_DB_PORT=5432
      - MB_DB_USER=${POSTGRES_USER}
      - MB_DB_PASS=${POSTGRES_PASSWORD}
      - MB_DB_HOST=db
      - MB_DB_FILE=/metabase-data/metabase.db
    depends_on:
      - db
    volumes:
      - dataviz_data:/metabase-data
    ports:
      - 3000:3000
volumes:
  postgres_data: {}
  db_data:
  dataviz_data:

archivo .env

# Postgres
POSTGRES_DB=my_db
POSTGRES_USER=root
#modificar la password o estos datos con los suyos
POSTGRES_PASSWORD=mypassword

Correr:

docker-compose up -d postgres

DE NADA鈥

Necesito tu ayuda!, No puedo agregar ningun lenguaje me dice que no puede ser encontrado este archivo por ejemplo plpython3.dll, pero SI ESTA! no se porque no puedo instalar mi primera extencion con python

ERROR: no se pudo cargar la biblioteca 芦C:/Program Files/PostgreSQL/11/lib/plpython3.dll禄: The specified module could not be found.

Esto es incre铆ble el poder que puede tener combinar diferentes lenguajes dentro del motor de base de datos 馃槃

Sin duda esto le da un plus importante a PostgreSQL, esto su compatibilidad con servicios de AWS, lo ponen hoy como mi favorito.

Que interesante poder usar otros lenguajes en el motor de bases de datos de PostgreSQL, me encantar铆a ver muchas m谩s aplicaciones de Python dentro de PostgreSQL, suena muy interesante!

Muy completo en verdad

Muy buenas integraciones, buenos datos lo cual me permite ver el gran potencial que tiene postgreSQL

se nesecita tener la version adecuada para correr python en postgres
PostgreSQL Version---- Python Version

PostgreSQL 16--------- Python 3.12.x from python. org
PostgreSQL 15--------- Python 3.11.x from python. org
PostgreSQL 14--------- Python 3.9.x from python. org
PostgreSQL 13--------- Python 3.8.x from python. org
PostgreSQL 12 and earlier Python 2.7 (included with macOS)

increible lo que puede hacer PosgreSQL

La informacion es buena. Pero creo que esta clase tuvo que haber sido grabada.

Si les sale este error:
ERROR: could not load library 鈥淒:/Programs Installation/PostgreSQL/14/lib/plpython3.dll鈥: The specified module could not be found.

Solo agreguen a variables de entorno las rutas:
C:\Program Files\Python39\Scripts
C:\Program Files\Python39

Para quienes utilicen conda u mamba , aqui posteo el link para la instalaci贸n de postgresql-plpython:
Conda/mamba.

Instalado en WSL 2

Excelente y muy potente

No tenia conocimiento de esto, es muy interesante.

Excelente clase y con los recursos ah铆 para consultarlos.

genial mucha informaci贸n valiosa lo de estos lenguajes para potenciar Postgres!

Sin duda la funcionalidad de integrar otros lenguajes procedurales hace a este motor super funcional y robusto, por eso me entusiasma aprender mas sobre PostGreSQL