Esta sentencia es muy util para ahorrar tiempo, supongamos que tenemos un respaldo de una base de datos, y queremos extrar unicamente una tabla , con su información (inserts), para no tener que subir toda la base de datos. Ya sabemos que subir toda una base de datos y esta es muy grande, pues nos puede llevar horas, tengo una base de datos de 23GB y me a durado hasta 5horas haciendo el restore.
En este caso con el comando sed vamos a extraer el script y lo mandamos a otro archivo. Por terminal.
sed -n -e '/CREATE TABLE.*catalogo_tienda/,/CREATE TABLE/p' backup_basedatos.sql > catalogo_tienda.dump
Explicandolo poquito:
Busca en el respaldo(backup_basedatos.sql), la coincidencia "CREATE TABLE " y pues el nombre de la tabla es lo quese cambiara, "catalogo_tienda".
Luego ponemos el nombre del archivo del respaldo "backup_basedatos.sql"
Y por ultimo mandamos la salida a otro archivo que en el ejemplo es: catalogo_tienda.dump
El trabajo no termina aquí, tenemos que editar el archivo de salida (en mi caso con el editor vim).
vim catalogo_tienda.dump
Quitamos lo que este de mas, dado que puede encontrar otras coincidencias, como alguna otra tabla que se llame catalogo_tienda_foranea, quizas. Eliminas esos datos de mas del archivo y gravas y ya tienes el archivo final, para subirlo.
Paresen muchos pasos,pero ya que lo haces, te das cuenta que es sencillo y rapido. Claro que se puede optimizar un poco mas el proceso, haciendo un script donde mandes de parametros, el nombre de la tabla a buscar, el nombre del archivo del respaldo.
PD: En una chancita genero el script y dejo el codigo.
PD: En una chancita genero el script y dejo el codigo.
No hay comentarios.:
Publicar un comentario