DEV Community

Conectar SAP CAP con PostgreSQL en Docker

Si estás trabajando con SAP CAP y quieres usar PostgreSQL en lugar de SQLite, este post es para ti. Te voy a explicar paso a paso cómo conectar tu aplicación CAP con una base de datos PostgreSQL corriendo en Docker.

Requisitos previos

Antes de empezar, asegúrate de tener instalado:

  1. Node.js y el framework @sap/cds
  2. Docker y Docker Compose
  3. Un editor (VS Code)

Si no tienes SAP CAP, instálalo con:

npm install -g @sap/cds-dk
Enter fullscreen mode Exit fullscreen mode

Ahora que estás listo, vamos a levantar PostgreSQL con Docker.
Levantando PostgreSQL con Docker

Vamos a crear un docker-compose.yml para lanzar PostgreSQL:

version: '3'
services:
  postgres:
    image: postgres:latest
    container_name: cap_postgres
    restart: always
    environment:
      POSTGRES_USER: cap_user
      POSTGRES_PASSWORD: cap_pass
      POSTGRES_DB: cap_database
    ports:
      - "5432:5432"
Enter fullscreen mode Exit fullscreen mode

Guarda este archivo y ejecuta:

docker-compose up -d
Enter fullscreen mode Exit fullscreen mode

Esto va a levantar un contenedor con PostgreSQL corriendo en el puerto 5432.

Instalando el driver de PostgreSQL en SAP CAP

Ahora, toca decirle a CAP que vamos a usar PostgreSQL en lugar de la base de datos por defecto. Para eso, instalamos el driver:

npm install @cap-js/postgres
Enter fullscreen mode Exit fullscreen mode

Configurando la conexión en package.json

Edita el archivo package.json y agrégale esto dentro de la sección cds.requires:

"cds": {
  "requires": {
    "db": {
      "kind": "postgres",
      "credentials": {
        "host": "localhost",
        "port": 5432,
        "database": "cap_database",
        "user": "cap_user",
        "password": "cap_pass"
      }
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

Esto le dice a CAP que la base de datos es PostgreSQL y le pasamos las credenciales.
Acuerdate de: https://cap.cloud.sap/docs/node.js/cds-env

Creando la base de datos en CAP

Ejecuta este comando para desplegar el esquema en PostgreSQL:

cds deploy --to postgres
Enter fullscreen mode Exit fullscreen mode

si todo sale bien, verás algo como "Successfully deployed to PostgreSQL".

Ya tienes SAP CAP corriendo con PostgreSQL en Docker. Ahora puedes aprovechar PostgreSQL en tus proyectos CAP sin problemas.

Top comments (0)