🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Migrar base de datos de MySQL a PostgreSQL en Syspanel

Actualizado el 6 de septiembre de 2025

¿Necesitas migrar tu base de datos de MySQL a PostgreSQL en Syspanel? Es un proceso muy común cuando buscas mejorar el rendimiento, aprovechar funciones avanzadas o simplemente cambiar de motor de base de datos. Aunque suene técnico, te guiaré paso a paso para que puedas migrar mysql a postgresql syspanel sin complicaciones. En Syspanel (antes conocido como HestiaCP, accesible por el puerto 2106), gestionar este cambio es más sencillo de lo que crees. Aquí aprenderás a exportar mysql importar postgresql, convertir mysql a postgresql y realizar una syspanel migración base datos completa.

¿Por qué migrar de MySQL a PostgreSQL?

Antes de comenzar con el proceso de cambiar base datos syspanel, es bueno entender por qué podrías querer hacer este movimiento. PostgreSQL es un motor de base de datos relacional de código abierto muy potente, conocido por:

  • Mejor manejo de concurrencia: Ideal para aplicaciones con muchas lecturas y escrituras simultáneas.
  • Soporte avanzado de tipos de datos: Como JSON, arrays, y datos geoespaciales.
  • Cumplimiento ACID estricto: Garantiza transacciones confiables.
  • Extensibilidad: Puedes agregar funciones personalizadas y extensiones.

Sin embargo, MySQL es más común en entornos de hosting compartido y aplicaciones como WordPress. Si tu aplicación requiere las características de PostgreSQL, o si simplemente quieres probar algo nuevo, esta guía te ayudará a hacer la transición sin perder datos.

Requisitos previos para la migración

Antes de ejecutar cualquier comando, asegúrate de tener:

  • Acceso a Syspanel: Ingresa a través del puerto 2106 (ejemplo: https://tudominio.com:2106).
  • Credenciales de ambas bases de datos: Usuario, contraseña, nombre de la base y host (normalmente localhost).
  • Herramientas de línea de comandos: Necesitarás mysqldump (para exportar MySQL) y psql (para importar en PostgreSQL). En Syspanel, puedes usar la terminal integrada o conectarte por SSH.
  • Espacio en disco suficiente: Para almacenar los archivos de exportación temporales.

[WARNING]
Siempre realiza una copia de seguridad completa de tu base de datos MySQL antes de comenzar. Un error durante la migración podría causar pérdida de datos.

Paso 1: Exportar la base de datos MySQL desde Syspanel

El primer paso para migrar mysql a postgresql syspanel es extraer los datos de tu base MySQL. En Syspanel, puedes hacerlo fácilmente desde la terminal.

  1. Accede a Syspanel con tu usuario y contraseña. Recuerda que el puerto es 2106.
  2. Abre la terminal (o conecta por SSH) y ejecuta el siguiente comando para exportar tu base de datos MySQL a un archivo SQL:
mysqldump -u usuario_mysql -p nombre_base_datos > exportacion_mysql.sql
  • Reemplaza usuario_mysql con tu usuario de MySQL.
  • Reemplaza nombre_base_datos con el nombre de la base que quieres migrar.
  • El sistema te pedirá la contraseña del usuario MySQL.

Este comando genera un archivo llamado exportacion_mysql.sql que contiene toda la estructura y datos de tu base MySQL.

[TIP]
Si tu base de datos es muy grande, puedes comprimir el archivo con gzip para ahorrar espacio: mysqldump -u usuario -p nombre_db | gzip > exportacion.sql.gz.

Paso 2: Preparar el archivo SQL para PostgreSQL

El archivo exportado de MySQL no es directamente compatible con PostgreSQL debido a diferencias en la sintaxis SQL, tipos de datos y funciones. Por eso, necesitas convertir mysql a postgresql mediante un proceso de transformación.

Opción A: Usar una herramienta automática

Existen herramientas como pgloader que convierten automáticamente la mayoría de las estructuras. En Syspanel, puedes instalarla si tienes permisos de superusuario:

sudo apt-get install pgloader

Luego, ejecuta:

pgloader mysql://usuario_mysql:contraseña@localhost/nombre_base_db postgresql://usuario_postgres:contraseña@localhost/nombre_base_pg

Esto migra directamente los datos sin necesidad de archivos intermedios. Es la opción más rápida y recomendada.

Opción B: Conversión manual (para bases pequeñas)

Si prefieres hacerlo manualmente, edita el archivo exportacion_mysql.sql con un editor de texto (nano, vim) y realiza estos cambios comunes:

  • Reemplazar comillas invertidas (`) por comillas dobles (") en nombres de tablas y columnas.
  • Cambiar tipos de datos: Por ejemplo, TINYINT(1) a BOOLEAN, VARCHAR a TEXT o VARCHAR (PostgreSQL los soporta), AUTO_INCREMENT a SERIAL.
  • Ajustar funciones: NOW() en MySQL equivale a CURRENT_TIMESTAMP en PostgreSQL.
  • Eliminar comentarios como -- o # que no sean estándar.

[INFO]
Para bases de datos complejas con procedimientos almacenados o triggers, la conversión manual puede ser tediosa. En ese caso, pgloader es tu mejor aliado.

Paso 3: Crear la base de datos PostgreSQL en Syspanel

Antes de importar, necesitas una base de datos vacía en PostgreSQL. Desde Syspanel:

  1. Inicia sesión en Syspanel (puerto 2106).
  2. Ve a la sección Bases de Datos y haz clic en Agregar Base de Datos.
  3. Selecciona PostgreSQL como tipo.
  4. Asigna un nombre (por ejemplo, migracion_pg) y un usuario con contraseña.
  5. Guarda los cambios. Syspanel creará la base y te dará las credenciales.

También puedes hacerlo desde la terminal:

sudo -u postgres createdb nombre_base_pg
sudo -u postgres createuser usuario_postgres -P
sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE nombre_base_pg TO usuario_postgres;"

Paso 4: Importar los datos a PostgreSQL

Ahora viene la parte de exportar mysql importar postgresql propiamente dicha. Dependiendo de cómo hayas preparado los datos:

Si usaste pgloader (Opción A)

El comando del paso 2 ya realizó la migración. Verifica que no haya errores revisando la salida.

Si usaste archivo SQL convertido (Opción B)

Ejecuta el siguiente comando para importar el archivo SQL modificado a tu base PostgreSQL:

psql -U usuario_postgres -d nombre_base_pg -f exportacion_convertida.sql
  • Te pedirá la contraseña del usuario de PostgreSQL.
  • Si el archivo es grande, puede tardar varios minutos.

[WARNING]
Si encuentras errores de tipo de dato o sintaxis, revisa el archivo SQL línea por línea. Los errores más comunes son por AUTO_INCREMENT no soportado o funciones de MySQL como UNIX_TIMESTAMP().

Paso 5: Verificar la migración

Una vez importados los datos, es crucial comprobar que todo esté correcto. Conéctate a la base PostgreSQL y ejecuta consultas de prueba:

psql -U usuario_postgres -d nombre_base_pg

Dentro de la consola, prueba:

  • \dt para listar tablas.
  • SELECT COUNT(*) FROM nombre_tabla; para contar registros.
  • Realiza una consulta simple que devuelva datos esperados.

Si todo coincide con tu base MySQL original, la migración fue exitosa.

Paso 6: Configurar la aplicación para usar PostgreSQL

El último paso de la syspanel migración base datos es apuntar tu aplicación a la nueva base PostgreSQL. Esto implica modificar los archivos de configuración de tu sitio web (por ejemplo, wp-config.php en WordPress, config.php en Laravel, etc.).

Busca las líneas que definen la conexión a la base de datos y cámbialas:

  • Host: localhost (o el servidor donde está PostgreSQL).
  • Nombre de base: nombre_base_pg.
  • Usuario: usuario_postgres.
  • Contraseña: la que asignaste.

Guarda los cambios y reinicia tu aplicación. Si usas Syspanel, puedes hacerlo desde el panel o con el comando:

sudo systemctl restart nginx

Solución de problemas comunes

Error: "relation does not exist"

Esto sucede cuando las tablas no se crearon correctamente. Revisa el archivo SQL convertido y asegúrate de que los nombres de tablas estén sin comillas invertidas y con el esquema adecuado (por defecto public).

Error: "permission denied for sequence"

Ocurre con tablas que usan SERIAL. Concede permisos al usuario:

GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO usuario_postgres;

La migración es muy lenta

Para bases grandes, usa pgloader con opciones de paralelismo o divide el archivo SQL en partes más pequeñas.

Preguntas frecuentes (FAQ)

¿Puedo migrar bases de datos de varios sitios a la vez?

Sí, repite el proceso para cada base de datos MySQL que tengas. Cada una debe tener su propia base PostgreSQL.

¿Qué pasa con los datos de sesión o caché?

La migración solo transfiere datos persistentes. Las sesiones y cachés de aplicaciones como WordPress se regenerarán automáticamente.

¿Pierdo funcionalidades de MySQL al migrar?

Algunas funciones específicas de MySQL (como FULLTEXT indexes) no tienen equivalente directo en PostgreSQL. Deberás adaptarlas usando índices GIN o trigramas.

¿Syspanel soporta PostgreSQL de forma nativa?

Sí, Syspanel (puerto 2106) permite crear y gestionar bases de datos PostgreSQL desde su panel, igual que con MySQL.

¿Necesito conocimientos avanzados de SQL?

No necesariamente, pero entender conceptos básicos como tipos de datos y sintaxis SQL te ayudará a resolver errores comunes.

Conclusión

Migrar mysql a postgresql syspanel es un proceso que, aunque requiere atención, está al alcance de cualquier usuario con acceso a la terminal de Syspanel. Siguiendo estos pasos: exportar, convertir, crear la base, importar y verificar, podrás cambiar base datos syspanel sin perder información. Recuerda que herramientas como pgloader simplifican enormemente la syspanel migración base datos, y que siempre es recomendable hacer una copia de seguridad antes de empezar.

Si encuentras obstáculos, no dudes en consultar la documentación de Syspanel o buscar ayuda en foros especializados. ¡Buena suerte con tu migración!

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel