Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

mysqlmigratorpostgree

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mysqlmigratorpostgree

Libreria pensada para migrar datos a postgresql de manera versatil auto modulando simplificado el codigo

  • 0.2.0
  • PyPI
  • Socket score

Maintainers
1

MysqlMigratorPostgree

Introducción

pip install mysqlmigratorpostgreesql

MysqlMigratorPostgree es una librería en Python diseñada para facilitar la migración de bases de datos completas desde MySQL hacia PostgreSQL. Esta herramienta es ideal para ingenieros de software que buscan una solución automatizada para transferir datos y estructuras de tablas entre estos dos sistemas de gestión de bases de datos relacionales.

La librería ofrece:

  • Conexión sencilla a servidores de MySQL y PostgreSQL.
  • Migración automatizada de tablas, incluyendo columnas y tipos de datos.
  • Manejo eficiente de conexiones y errores.
  • Un diseño modular y extensible.

Diccionario de Palabras Reservadas

Durante la migración, ciertos tipos de datos en MySQL no tienen un equivalente exacto en PostgreSQL. Este es un resumen de las conversiones realizadas por la librería:

Tipo en MySQLTipo en PostgreSQLDescripción
INTINTEGEREnteros de tamaño fijo.
VARCHAR(n)TEXTPostgreSQL no requiere límites estrictos para textos.
TEXTTEXTSe mantiene el mismo tipo para textos largos.
FLOATREALValores de punto flotante.
DOUBLEDOUBLE PRECISIONValores de mayor precisión en PostgreSQL.
DATEDATEFecha estándar en formato YYYY-MM-DD.
DATETIMETIMESTAMPFecha y hora con zona horaria.
TINYINT(1)BOOLEANInterpretado como un valor lógico (TRUE o FALSE).
ENUMTEXTConvertido a texto, ya que PostgreSQL no soporta directamente el tipo ENUM.

Detalles del Código

Estructura General

La librería sigue un enfoque modular. Cada funcionalidad está definida en un archivo específico:

  • connect_mysql.py: Maneja la conexión a un servidor MySQL.
  • connect_postgresql.py: Maneja la conexión a un servidor PostgreSQL.
  • migrator.py: Orquesta la migración de tablas y datos.

Cambios en los Tipos de Datos

La lógica para convertir tipos de datos de MySQL a PostgreSQL se encuentra en el archivo migrator.py. Aquí está el fragmento clave del código con explicación:

# Mapeo de tipos de datos
if "int" in column_type:
    postgres_type = "INTEGER"
elif "varchar" in column_type or "text" in column_type:
    postgres_type = "TEXT"
elif "float" in column_type or "double" in column_type:
    postgres_type = "REAL"
elif "date" in column_type:
    postgres_type = "DATE"
elif "tinyint(1)" in column_type:
    postgres_type = "BOOLEAN"
else:
    postgres_type = "TEXT"  # Tipo predeterminado si no hay un mapeo específico

Código de Ejemplo

Aquí tienes un ejemplo funcional que muestra cómo usar la librería para migrar todas las tablas de una base de datos MySQL a PostgreSQL:

from mysqlmigratorpostgree import MysqlMigratorPostgree

# Instanciar el migrador
migrator = MysqlMigratorPostgree()

# Conectar a MySQL
migrator.connect_mysql(
    host="localhost",
    port=3306,  # Puerto predeterminado de MySQL
    user="root",
    password="password",  # Cambiar por tu contraseña
    database="databases_name"
)

# Conectar a PostgreSQL
migrator.connect_postgresql(
    host="localhost",
    port=5432,  # Puerto predeterminado de PostgreSQL
    user="postgres",
    password="password",  # Cambiar por tu contraseña
    database="databases_name"
)

# Migrar todas las tablas
migrator.migrate_all()

# Cerrar conexiones
migrator.close_connections()

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc