Páginas

lunes, 3 de octubre de 2016

Separar una base de datos MS SQL por tablas - Python

Escenario:
  • No tengo (y no voy a instalar) el MS SQL
  • Me pasan un dump de muuuuchos megas
  • Existe un encabezado de tabla donde está el nombre de la tabla por ejemplo:
    /****** Object:  Table [dbo].[Tabla]
  • Necesito importar solo algunas tabla de toda la base a un Wordpress
Decidí dividir el mega archivo en archivos más chiquitos por tabla...

Una anotación importante, el archivo que me habían pasado tenía como codificación UCS-2 Little Endian.... necesitás convertirlo a UTF-8

Con Python son un par de lineas hacer esto... les dejo el código: 

fname = raw_input("Ingresa nombre de archivo: ")
if len(fname) < 1 : fname = "base-utf8.sql"

fh = open(fname)
 
for linea in fh:
    if linea.find("/******") != -1: 
        #fijarse como se llama la tabla
        inibus = linea.find('[dbo].[');
        tabla = linea[inibus+7:linea.find(']',inibus+7)]

        #crear un nuevo archivo, a+ lo crea o lo abre al final para agregar        
        f = open(tabla + '.sql','a+')
        print "Se creo el archivo: " + tabla + ".sql"
        
    else:
        #guardar la linea en la tabla creada antes
        f.write(linea)

No hay comentarios.: