2010-04-28 18 views
8

Estoy escribiendo un script PHP para generar volcados de SQL de mi base de datos para control de versiones. Ya volca la estructura de datos mediante la ejecución de la consulta SHOW CREATE .... adecuada. Ahora quiero descargar los datos en sí, pero no estoy seguro del mejor método. Mis requisitos son:Generar volcado de datos MySQL en SQL desde PHP

  • Necesito un registro por fila
  • filas deben ser ordenados por clave primaria
  • SQL debe ser válida y exacta sin importar el tipo de datos (enteros, cadenas, datos binarios ...)
  • volcados deben ser idénticos cuando los datos no han cambiado

puedo detectar y ejecutar mysqldump como comando externo, sino que añade un requisito del sistema adicional y tengo que analizar la salida con el fin de eliminar los encabezados y pies de página con información de volcado que no necesito (como la versión del servidor o la fecha de volcado). Me encantaría mantener mi script tan simple como sea posible para que se pueda mantener en un archivo independiente.

¿Cuáles son mis alternativas?

+0

Mientras tanto, estoy tratando de salir SHOW INDEX y mysql_real_escape_string() –

+0

mysqldump en realidad no se añade un requisito adicional del sistema, se envía con mySQL. –

+0

Así que mysqldump agrega MySQL como requisito del sistema. La mayoría de los desarrolladores por aquí no tienen un servidor local: se conectan al servidor común en la LAN. –

Respuesta

1

Creo que el análisis de salida mysqldump sigue siendo el más fácil. Creo que hay muy pocos metadatos que tenga que excluir, y por lo tanto eliminarlos deberían ser solo unas pocas líneas de código.

También podría mirar a las siguientes opciones: mysqdump --tab, --compact

0

Siempre se puede probar la función del sistema(). Espero que estés en linux :)

+1

También hay sistemas fuera de Linux :) –

0

"SELECT * FROM nombretabla fin de clave primaria" puede obtener los nombres de las tablas de la base de datos INFORMATION_SCHEMA o el "show tablas "comando. También puede obtener la clave principal de "mostrar índices de nombre de tabla" y luego bucle y crear instrucciones de inserción cadenas

Cuestiones relacionadas