A la hora de importar grandes archivos SQL con muchas tablas e inserciones de registro, suele dar algo de conflicto a la hora de incorporarlos, teniendo que modificar parametros de php.ini como upload_max_filesize, memory_limit o el post_max_size. También puedes probar en utilizar programas que puedan cargar la base de datos como HeidiSQL o Workbench. Sin embargo, descubri BigDump como opción viable para trabajar con bases de datos grandes, e interesante para hablaros de él.
¿Que es BigDump?
BigDump es un fichero que funciona como importador de base de datos que lee todo tipo de inserciones, tanto generar tablas como insertar, actualizar y borrar registros. Este documento necesita que modifiques varias lineas para que cargue bien.
¿Que parámetros hay que cambiar?
Al principio, necesitarás añadir la configuración de la base de datos a la que quierás cargar los datos:
- $db_server = "localhost"; (Nombre del Servidor)
- $db_name = "database"; (Nombre de la Base de Datos)
- $db_username = "user"; (Usuario)
- $db_password = "password"; (Contraseña)
Luego, para indicar el fichero que quieres cargar debes de modificar:
- $filename = "fichero.sql"; (Nombre del fichero)
Por último, puedes modificar el número de líneas que puedes importar. Si el fichero es grande y tiene 35.000 líneas, lo que debes de modificar es lo siguiente:
- $linespersession = 35000; (Número de líneas)
- $max_query_lines = 35000; (Máximo número de líneas)
Por último, este fichero lo colocáis dentro del servidor, aconsejablemente crear una carpeta donde añadir tanto este fichero como los archivos SQL que queraís importar (/db/("ficheros")).
Una vez hecho esto, puedes arrancar el fichero desde "Dirección web/db/bigdump.php" y este cargará el fichero de manera web.
Verás que tienes un enlace para arrancar el importador y una vez puesto en marcha, solo pueden pasar 2 cosas.
- Cargue la sql todo por completo y sin problemas.
- Salte algún tipo de error, lo que mostrará el motivo del error en la última línea.
- Si falla porque hay un campo desconocido, siempre puedes ir a la tabla origen y crear el nuevo campo o borrarlo de tu SQL.
- Si falla porque hay una clave primaría duplicada, quizás sea porque haya generado tu base de datos origen una clave primaria repetida, una de ellas pueda estar unida a otra columna conjuntamente.
Cualquier error que surja o aportación que puedas ofrecer, puedes comentármelo en los comentarios