Tutorial python

Tutorial en español sobre el lenguaje de programación más Zen

  • Curso Básico
    • Instalar Python
    • 1 Comentarios
    • 2 Variables
    • 3 Listas
    • 4 Condicionales
    • 5 Bucles
    • 6 Módulos
  • Otros recursos
  • Blog

Cómo migrar de sqlite a MySQL

21 diciembre, 2014 By jaime 2 comentarios

migrar de sqlite a mysql

En ocasiones utilizamos una base de datos sqlite3 en nuestros programas. Puede que más adelante queramos migrar de sqlite a mysql. No sólo habrá que actualizar el programa, sino que también habrá que migrar los datos que ya tenemos grabados en la base de datos.

La manera más sencilla de hacer esta migración, es realizando una exportación desde sqlite a un archivo de texto. Este archivo, no es directamente importable por mysql, por lo que antes hay que hacer una serie de adaptaciones.

Para ello, instala sqlite3 si todavía no lo tienes instalado, y realiza un volcado de la base de datos a un archivo de texto:

sudo apt-get install sqlite3
sqlite3 bbdd.sqlite .dump > bbdd.sql

Aunque el archivo bbdd.sql contiene toda la información de la base de datos, no es directamente importable por mysql. Antes es necesario hacer una serie de adaptaciones en el mismo.

Para hacer estas adaptaciones, podemos usar el siguiente script python que puedes descargar de github:

./sqlite2mysql.py bbdd.sql > bbdd.mysql

El archivo obtenido puede ser importado a MySQL con un pequeño matiz, y es que las tablas creadas en sqlite3, pueden tener los campos con una definición demasiado «vaga» para MySQL, por lo que tendrás que revisar los comandos CREATE TABLE, poniendo un tipo MySQL y una longitud.

Tendrás que convertir a VARCHAR(XX) los campos que no tengan un tipo definido, así como convertir a DECIMAL(X,Y) los de tipo REAL de sqlite. Una vez realizada esta adaptación, ya se puede importar como si fuera un volcado de una base de datos MySQL normal:

mysql -u user -p nombre_db < bbdd.mysql

Si vamos a importarlo en una base de datos nueva, previamente, deberíamos haber creado en MySQL la base de datos «nombre_db».

Espero que te haya sido útil.

Publicado en: Blog

Comentarios

  1. RodriPCH96 dice

    21 diciembre, 2017 a las 8:04 pm

    ¿Como se hace la migración en Windows?

    Responder
    • jaime dice

      21 diciembre, 2017 a las 9:16 pm

      Hola Rodri,
      en Windows debería ser igual con la salvedad de que en vez de instalar sqlite3 usando sudo apt-get install, deberías instalarlo descargando el instalador de sqlite de la página oficial (https://www.sqlite.org/)

      Responder

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Para darte un servicio más personalizado, esta web utiliza cookies propias y de terceros. Si sigues navegando, entendemos que aceptas su uso según nuestra política de cookies. Aceptar Leer más
Privacy & Cookies Policy

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
Siempre activado
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Non-necessary
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
GUARDAR Y ACEPTAR