La base de datos MySQL que alimenta nuestro sitio Django ha desarrollado algunos problemas de integridad; p.ej. claves externas que hacen referencia a filas inexistentes. No entraré en cómo nos metimos en este lío, pero ahora estoy buscando cómo solucionarlo.¿Hay alguna herramienta para verificar la integridad de la base de datos en Django?
Básicamente, Estoy buscando un script que analiza todos los modelos en el sitio de Django, y comprueba si todas las claves externas y otras limitaciones son correctos. Con suerte, la cantidad de problemas será lo suficientemente pequeña para que puedan corregirse a mano.
Podría codificar esto yo mismo, pero espero que alguien aquí tenga una idea mejor.
Encontré django-check-constraints pero no encaja del todo bien: en este momento, no necesito algo para evitar estos problemas, sino que los encuentre para que puedan repararse manualmente antes de tomar otras medidas.
Otras restricciones:
- Django 1.1.1 y modernización se ha determinado a romper cosas
- MySQL 5.0.51 (Debian Lenny), actualmente con MyISAM tablas
- Python 2.5 , podría ser actualizable pero prefiero no ahora
(más tarde, vamos a convertir a I nnoDB para soporte de transacción adecuado, y tal vez restricciones de clave externa en el nivel de la base de datos, para evitar problemas similares en el futuro. Pero ese no es el tema de esta pregunta.)
¿No mencionó simplemente usar PostGreSQL, MySQL es obligatorio? –
No obligatorio, no. Definitivamente consideraremos PostgreSQL más tarde, pero cambiar el DBMS es un poco arriesgado en este momento. – Thomas