Author: jaime

  • Corregir secuencias en PostgreSQL después de una importación de datos

    Corregir secuencias en PostgreSQL después de una importación de datos

    Durante procesos de migración, restauración o carga masiva de información en PostgreSQL, es posible que las secuencias asociadas a columnas autoincrementales queden desincronizadas respecto a los datos almacenados en la tabla.

    Cuando esto ocurre, los nuevos registros pueden intentar utilizar identificadores inferiores al último valor existente, provocando errores de clave duplicada o inconsistencias en la generación de IDs.

    Validación de la secuencia

    Para identificar la secuencia asociada a una columna:

    SELECT pg_get_serial_sequence('clientes', 'id');
    

    Para consultar el valor actual de la secuencia:

    SELECT last_valueFROM clientes_id_seq;
    

    Y para obtener el identificador más alto almacenado en la tabla:

    SELECT MAX(id)FROM clientes;
    

    Si el valor de la secuencia es inferior al resultado de MAX(id), la secuencia requiere sincronización.

    Corrección

    La forma recomendada de corregir la secuencia consiste en actualizar su valor al identificador máximo existente en la tabla:

    SELECT setval('clientes_id_seq',(SELECT MAX(id) FROM clientes));
    

    También puede utilizarse una versión genérica que identifica automáticamente la secuencia asociada:

    SELECT setval(pg_get_serial_sequence('clientes', 'id'),COALESCE(MAX(id), 1))FROM clientes;
    

    Una vez ejecutado este procedimiento, PostgreSQL continuará generando identificadores a partir del siguiente valor disponible, evitando conflictos con los registros ya existentes.

  • Conectar MCP Server de Laravel con Claude Desktop en macOS

    Conectar MCP Server de Laravel con Claude Desktop en macOS

    En este caso Node fue instalado usando nvm a través de Laravel Herd, lo que significa que npx y node no están en las rutas estándar del sistema.

    Hay que indicarle a Claude Desktop:

    • La ruta absoluta de npx (en lugar de solo "npx")
    • La ruta del directorio de node inyectada como variable de entorno PATH
    (more…)
  • Solucionando el error “Connection refused” al ejecutar tests de PHPUnit en GitHub Actions

    Solucionando el error “Connection refused” al ejecutar tests de PHPUnit en GitHub Actions

    Hace poco me encontré con un error bastante común (pero frustrante) al ejecutar tests de PHPUnit en GitHub Actions usando Laravel. Localmente todo funcionaba perfecto, pero en CI los tests fallaban inmediatamente con un error de conexión a la base de datos.

    El problema

    Al ejecutar los tests en GitHub Actions, aparecía el siguiente error:

    Illuminate\Database\QueryException: SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused
    Is the server running on that host and accepting TCP/IP connections?
    

    Esto ocurría al intentar correr un test básico:

    Tests\Feature\Auth\AuthenticationTest::test_login_screen_can_be_rendered
    
    (more…)
  • Configurar PostgreSQL en Laravel con Docker (incluyendo pgvector)

    Configurar PostgreSQL en Laravel con Docker (incluyendo pgvector)

    Si estás montando un proyecto Laravel y quieres una base de datos PostgreSQL aislada con Docker, esta configuración te deja todo listo en pocos pasos.

    ¿Qué vas a tener al final?

    • Laravel conectado a PostgreSQL por DB_CONNECTION=pgsql
    • Contenedor Docker con la imagen pgvector/pgvector:pg16
    • Script de inicialización que:
      • Habilita la extensión vector
      • Crea la base de datos
    (more…)
  • Mejora tus mensajes de commit con GitHub Copilot en VSCode

    Mejora tus mensajes de commit con GitHub Copilot en VSCode

    GitHub Copilot permite configurar instrucciones personalizadas para la generación de mensajes de commit. Solo necesitas crear un archivo con las reglas que quieres que siga y decirle a VSCode dónde encontrarlo.

    (more…)
  • Conectar VS Code a un Servidor Remoto usando una Clave PPK

    Conectar VS Code a un Servidor Remoto usando una Clave PPK

    Para establecer una conexión SSH segura y sin contraseña desde VS Code a un servidor remoto, la autenticación mediante clave privada PPK es el método estándar y eficiente.

    Requisitos Previos

    (more…)
  • Resetear la Contraseña de Administrador en n8n Self-Hosted (Docker)

    Resetear la Contraseña de Administrador en n8n Self-Hosted (Docker)

    n8n incluye una herramienta CLI (Command Line Interface) que nos permite resetear la gestión de usuarios a su estado inicial. Importante: Este proceso eliminará todas las cuentas de usuario existentes, así que asegúrate de tener backups si necesitas conservar datos específicos de usuarios.

    (more…)
  • Configurar Supervisor para Queues en Laravel con Docker

    Configurar Supervisor para Queues en Laravel con Docker

    Si tus colas de Laravel no se procesan en Docker, aquí tienes la solución rápida. Usando Supervisor dentro de tu contenedor, podrás manejar workers de forma estable y automática.

    Modificaciones Necesarias

    1. docker/apache/Dockerfile

    (more…)
  • Configuración de despliegue automático con llaves SSH y GitHub Actions

    Configuración de despliegue automático con llaves SSH y GitHub Actions

    Automatizar el despliegue de tus proyectos puede ahorrarte tiempo y reducir errores. En esta guía, te explico cómo configurar un despliegue automático utilizando llaves SSH y GitHub Actions.

    (more…)
  • Cómo cambiar el autor en los últimos 3 commits de Git

    Cómo cambiar el autor en los últimos 3 commits de Git

    Si necesitas actualizar el nombre o email del autor en múltiples commits de Git, este método con git rebase --interactive te permitirá hacerlo en minutos.

    Paso 1: Iniciar un rebase interactivo

    Si los commits que quieres modificar son los 3 primeros del repositorio:

    git rebase -i --root
    (more…)