2010-02-02 34 views
8

Tengo una aplicación web que abarca muchos usuarios diferentes, cada uno con permisos selectivos sobre lo que pueden ver. La aplicación está construida sobre una base de datos MySQL.Exportación selectiva de base de datos MySQL

Una característica que estoy interesado en proporcionar a mis "usuarios avanzados" es un volcado sql de todos sus datos para que puedan funcionar y hacer sus cosas con él. Ahora no puedo usar mysqldump porque hay cosas que pertenecen a otros usuarios que no deberían estar disponibles para nadie más en la descarga.

¿Hay alguna otra manera fácil de obtener datos dentro y fuera de MySQL que le permita especificar de manera selectiva qué exportar, y sin tener que pasar por todo tipo de aros? Tenga en cuenta que necesito control en el nivel de consulta, es decir, poder especificar una lista de tablas NO es suficiente. En un mundo ideal, una herramienta de este tipo encontraría automáticamente todas las relaciones basadas en el cruce de claves externas, pero si tengo que escribir consultas a nivel de tabla, estoy dispuesto a hacerlo, siempre que sea fácil para los demás recuperar los datos en mysql sin demasiados problemas.

¿Alguien sabe si existe una herramienta de este tipo, o si estoy en el territorio "roll my own"?

Respuesta

5

Mysqldump tiene un indicador "--where" que puede usar para devolver filas de manera selectiva. Creo que debería ser capaz de hacer algo como:

mysqldump --where="foreign_key_id=5" 

que debe devolver sólo las filas específicas, más documentación sobre la MySQL Site

Sin embargo, no estoy seguro de que no sería más adelante a hacer una exportación como archivos de valores separados por comas. Los archivos CSV se pueden importar de nuevo a MySQL, así como brindar a los usuarios muchas otras opciones para trabajar con sus datos (hojas de cálculo, otros RDBMS, análisis de texto).

+0

Es cierto en csvs, aunque estamos hablando de más de 20 tablas como mínimo. ¿MySQL admite una importación masiva de datos CSV? – Cory

+0

Sí, si utiliza la herramienta mysqlimport creará automáticamente las tablas basadas en los nombres de archivo que ingresa a los documentos para mysqlimport en http://dev.mysql.com/doc/refman/5.0/en/mysqlimport.html –

0

Aquí hay una herramienta que puede ayudarlo a exportar datos en archivos CSV/Excel, pero no a importar datos. Tiene una administración de permisos que debe proporcionar el acceso necesario que requería.

Lo puede encontrar aquí: https://github.com/mpetcu/report-manager.

Cuestiones relacionadas