Extraer una sola tabla de un volcado MySQL

Tienes un volcado de 7 GB con 127 tablas, pero en local solo necesitas tres: users, orders, products. Aquí está por qué los trucos habituales de sed/grep se rompen y cómo extraer exactamente las tablas que quieres (con sus claves foráneas) en unos clics.

No todo trabajo necesita la base de datos entera. Cuando desarrollas una funcionalidad en local, rara vez quieres un volcado de producción completo llenando tu disco y tardando una hora en importarse. Quieres el puñado de tablas que la funcionalidad realmente toca.

Lo mismo ocurre cuando estás depurando una sola tabla: reproducir un problema de datos en orders no requiere las otras 126 tablas, o haciendo una migración parcial, donde solo unas pocas tablas pasan a un nuevo servicio. En todos estos casos la pregunta es la misma: ¿cómo saco solo estas tablas de un volcado gigante, de forma limpia y rápida?

El enfoque sed/grep y por qué se rompe

La respuesta clásica es rebanar el archivo con sed entre las cabeceras de sección que mysqldump escribe para cada tabla:

# extrae la tabla users de un archivo mysqldump
sed -n '/-- Table structure for table `users`/,/-- Table structure for table/p' dump.sql > users.sql

Parece ingenioso y, en un volcado pequeño y ordenado, hasta podría funcionar una vez. En un archivo real de 7 GB se desmorona de muchas formas sutiles:

Acabas apilando awk sobre grep sobre sed, probando con subconjuntos y aún sin fiarte del resultado. Hay una forma mejor.

Extrae tablas con DumpCleaner

DumpCleaner parsea el volcado correctamente: entiende los límites de las sentencias, los INSERT multilínea, las comillas invertidas y los comentarios, así que siempre corta en las líneas correctas. Extraer las tablas que necesitas lleva cuatro pasos:

  1. Arrastra tu volcado .sql. DumpCleaner recorre el archivo en streaming, así que un volcado de 7 GB se abre con memoria constante en lugar de cargarlo entero.
  2. Lee la lista de tablas autodetectada. Cada tabla se parsea y se lista con su número de filas y su tamaño: sin desplazarte por millones de líneas para encontrar lo que hay.
  3. Elige las tablas que quieres. Marca users, orders y products, o escribe una expresión regular / patrón de exclusión como *_logs para descartar grupos enteros de una vez.
  4. Incluye los padres de las claves foráneas y exporta. Opcionalmente incorpora automáticamente las tablas padre referenciadas y luego exporta un archivo limpio y listo para importar.

Unas cuantas cosas hacen esto mucho menos engorroso que las herramientas de shell:

Solo las tablas que necesitas, nada más

DumpCleaner extrae tablas específicas de volcados de cualquier tamaño: en streaming, con memoria constante y con las claves foráneas resueltas por ti. App nativa para macOS e iPadOS, pago único.

Descargar en la App Store

Preguntas frecuentes

¿Puedo extraer varias tablas a la vez?

Sí. Marca tantas tablas como quieras —users, orders y products juntas— y DumpCleaner las escribe todas en un único archivo en una sola pasada.

¿Conserva las dependencias de claves foráneas?

Opcionalmente, sí. Activa incluir dependencias de claves foráneas y cualquier tabla padre referenciada por tu selección se incorpora automáticamente, así que el extracto se importa sin errores de restricción.

¿Puedo excluir tablas por patrón?

Sí. Usa patrones de exclusión como *_logs o *_sessions, o una expresión regular, para descartar grupos enteros de tablas en lugar de desmarcarlas una a una.

¿Funciona con PostgreSQL?

Sí. DumpCleaner lee volcados de MySQL, MariaDB y PostgreSQL (pg_dump), y maneja nombres cualificados por esquema como public.users al extraer tablas.

Deja de pelear con sed y grep

Arrastra, elige tus tablas, exporta. DumpCleaner extrae exactamente las tablas que necesitas, con sus claves foráneas, de cualquier volcado.

Descargar en la App Store