Exportar solo el esquema (estructura) de un volcado SQL

Tienes un volcado completo en el disco, pero solo quieres la estructura —CREATE TABLE, índices, claves foráneas— sin las tablas de logs de 89 millones de filas. O lo contrario: solo los datos, sin sentencias CREATE. Aquí está por qué los flags habituales de volcado no ayudan con un archivo existente y cómo separar la estructura de los datos con un clic.

Tres situaciones aparecen una y otra vez:

Por qué mysqldump --no-data no basta

El consejo clásico es mysqldump --no-data (solo estructura) o mysqldump --no-create-info (solo datos). Ambos son flags de exportación: cambian lo que contiene un volcado nuevo de una base de datos en ejecución. No hacen nada por un volcado que ya tienes en el disco como archivo .sql.

En la práctica, el archivo suele llegar de otra persona, de un trabajo de copia de seguridad o de un servidor al que ya no tienes acceso en vivo. No puedes volver a ejecutar mysqldump contra una base de datos inalcanzable: las credenciales ya no están, el servidor está desmantelado o el archivo es simplemente todo lo que te entregaron. En ese punto los flags son inútiles y te toca editar el propio archivo.

La vía manual

El movimiento obvio es eliminar líneas con grep o sed. Para conservar la estructura y descartar los datos:

# conserva todo excepto las filas INSERT
grep -v '^INSERT INTO' dump.sql > schema.sql

# o conserva solo las filas INSERT para un archivo de solo datos
grep '^INSERT INTO' dump.sql > data.sql

Esto parece bien en un volcado pequeño y ordenado, y luego se rompe en uno real:

Acabas depurando tu propio filtro en lugar de obtener tu esquema.

Solo estructura o solo datos con DumpCleaner

DumpCleaner entiende las sentencias SQL en lugar de coincidir líneas, así que separa la estructura de los datos de forma fiable, en archivos de cualquier tamaño:

  1. Arrastra tu volcado .sql a DumpCleaner (MySQL, MariaDB o PostgreSQL). Parsea el archivo en streaming, así que un volcado de varios gigabytes se carga con memoria constante.
  2. Activa o desactiva los tipos de sentencia que quieras: CREATE TABLE, CREATE INDEX, INSERT INTO, ALTER, DROP, LOCK, SET. Desmarca INSERT INTO y obtienes solo la estructura; desmarca CREATE TABLE / CREATE INDEX y obtienes solo los datos.
  3. O elige un preset —Solo estructura o Solo datos— para ajustar todos los conmutadores de una vez y luego refinar por tabla si quieres.
  4. Exporta. Obtienes un archivo de esquema ligero para staging o CI, o un volcado limpio de solo datos para poblar.

Como el filtro es consciente de las sentencias, un INSERT extendido multilínea se conserva o se descarta como un todo, nunca cortado por la mitad.

La verdadera potencia está en que el filtrado funciona por tipo de sentencia y por tabla, y ambos se combinan. Puedes conservar la estructura de todas las tablas pero incluir datos INSERT solo para las tres tablas que realmente necesitas, dejando la tabla logs de 89 millones de filas como un cascarón vacío. Eso es algo que ningún flag --no-data puede expresar.

Separa estructura de datos en segundos

DumpCleaner filtra un volcado existente por tipo de sentencia y por tabla: solo estructura, solo datos o cualquier mezcla, en streaming y con memoria constante. App nativa para macOS e iPadOS, pago único.

Descargar en la App Store

Preguntas frecuentes

¿Puedo exportar los datos sin el esquema?

Sí. Desactiva CREATE TABLE y CREATE INDEX (o elige el preset Solo datos) y conserva INSERT INTO. DumpCleaner exporta solo las filas, listas para cargarse en un esquema que ya existe.

¿Una exportación de solo estructura conserva los índices y las claves foráneas?

Sí. Solo estructura conserva CREATE TABLE, CREATE INDEX, ALTER TABLE y las definiciones de claves foráneas: todo lo que define la base de datos. Solo se eliminan las filas de datos INSERT.

¿Puedo mezclar: estructura para todas las tablas, datos para algunas?

Sí. El filtrado es por tipo de sentencia y por tabla, y ambos se combinan. Conserva la estructura de cada tabla pero incluye datos INSERT solo para las pocas tablas que realmente necesitas.

¿Funciona esto con PostgreSQL?

Sí. DumpCleaner lee volcados de MySQL, MariaDB y PostgreSQL y detecta el formato automáticamente, así que las exportaciones de solo estructura y solo datos funcionan igual para los archivos de pg_dump.

Esquema sin los datos, o datos sin el esquema

Arrastra, activa los tipos de sentencia, exporta. DumpCleaner divide cualquier volcado exactamente en la parte que necesitas.

Descargar en la App Store