ErickPolancoDev

// BLOG · NOTAS DESDE PRODUCCIÓN

Como migrar de MySQL a PostgreSQL sin perder datos (guia paso a paso)

Como migrar de MySQL a PostgreSQL sin perder datos guia paso a paso v3

Migrar de MySQL a PostgreSQL es cada vez más común cuando un proyecto crece y necesita tipos de datos más ricos, mejor manejo de concurrencia o extensiones como búsqueda de texto avanzada. Aquí te explico las herramientas actuales, los errores más comunes y cuánto tiempo toma en la práctica.

Antes de migrar: qué se rompe normalmente

MySQL y PostgreSQL no son intercambiables al 100%. Los problemas más frecuentes al migrar son:

  • Diferencias de tipos de datos: por ejemplo, el manejo de booleanos, enums y auto-incrementos no es idéntico entre ambos motores.
  • Codificación y collation: un desajuste aquí puede dañar caracteres especiales (acentos, ñ) si no se configura bien desde el inicio.
  • Sintaxis SQL que no porta limpiamente: funciones específicas de MySQL, procedimientos almacenados y algunas consultas necesitan reescribirse.
  • Tiempo de inactividad (downtime) del corte final: el momento en que apagas MySQL y enciendes PostgreSQL en producción.

pgloader: la herramienta estándar para migración única

pgloader sigue siendo en 2026 la opción más rápida y gratuita para una migración única con una ventana de mantenimiento corta. Transfiere el esquema completo y los datos en un solo comando, con opciones de configuración avanzadas para mapear tipos de datos problemáticos. Es la ruta recomendada si puedes permitirte una ventana de inactividad breve y planificada para el corte final.

Foreign Data Wrapper: migración sin downtime

Si no puedes darte el lujo de detener el servicio, Foreign Data Wrapper (FDW) permite que PostgreSQL consulte datos de MySQL directamente como si fueran tablas externas, sin necesidad de transferir todo de una vez. Esto habilita una migración gradual: mueves tablas por partes mientras la aplicación sigue funcionando, y validas cada bloque antes de cortar por completo la dependencia de MySQL.

Cuánto tiempo toma en la práctica

Tamaño y complejidadTiempo estimado
Base de datos pequeña (<1GB), esquema simplePocas horas con pgloader
Base de datos grande, muchos stored procedures y tipos complejosDías de planificación y pruebas antes del corte

Si aún estás decidiendo si PostgreSQL es la opción correcta para tu proyecto antes de invertir tiempo en migrar, revisa primero nuestra comparativa de MySQL vs PostgreSQL vs MariaDB.

Preguntas frecuentes

¿Puedo migrar de MySQL a PostgreSQL sin perder datos?

Sí, siempre que hagas un respaldo completo antes de empezar y valides los datos migrados contra el original antes de apagar MySQL definitivamente.

¿pgloader funciona con bases de datos grandes?

Sí, pero a mayor tamaño y complejidad, más importante es probar la migración completa en un entorno de staging antes de tocar producción.

¿Mi aplicación necesita cambios de código después de migrar?

Casi siempre algúnas consultas SQL específicas de MySQL necesitan ajustarse, y si usabas un ORM, generalmente basta con cambiar el driver de conexión y revisar las queries crudas (raw queries).

¿Vale la pena migrar si mi proyecto ya funciona bien en MySQL?

No solo por moda. Migra si realmente necesitas algo que PostgreSQL hace mejor (tipos de datos avanzados, JSON nativo robusto, extensiones especializadas), no como cambio preventivo sin una razón concreta.

¿Tienes un proyecto en mente?

Construyo agentes de IA, automatizaciones y aplicativos web que aguantan producción.

Scroll to Top