Saltar al contenido

¿Cuál es la forma más fácil de borrar una base de datos de la CLI con manage.py en Django?

Este artículo fue analizado por nuestros expertos así se asegura la exactitud de este enunciado.

Solución:

Si no te importan los datos:

La mejor manera sería dejar caer la base de datos y ejecutar syncdb otra vez. O puedes ejecutar:

Para Django >= 1.5

python manage.py flush

Para Django <1.5

python manage.py reset appname

(puedes añadir --no-input hasta el final del comando para que salte el indicador interactivo).

Si te importan los datos:

De los documentos:

syncdb solo creará tablas para modelos que aún no se han instalado. Nunca emitirá instrucciones ALTER TABLE para hacer coincidir los cambios realizados en una clase de modelo después de la instalación. Los cambios en las clases del modelo y los esquemas de la base de datos a menudo implican algún tipo de ambigüedad y, en esos casos, Django tendría que adivinar los cambios correctos a realizar. Existe el riesgo de que se pierdan datos críticos en el proceso.

Si ha realizado cambios en un modelo y desea modificar las tablas de la base de datos para que coincidan, use el comando sql para mostrar la nueva estructura SQL y compárela con su esquema de tabla existente para resolver los cambios.

https://docs.djangoproject.com/en/dev/ref/django-admin/

Referencia: Preguntas frecuentes – https://docs.djangoproject.com/en/dev/faq/models/#if-i-make-changes-to-a-model-how-do-i-update-the-database

La gente también recomienda South ( http://south.aeracode.org/docs/about.html#key-características), pero no lo he probado.

Usando Django Extensions, ejecutando:

./manage.py reset_db

Borrará las tablas de la base de datos y luego ejecutará:

./manage.py syncdb

Los recreará (el sur puede pedirle que migre cosas).

Creo que los documentos de Django mencionan explícitamente que si la intención es comenzar nuevamente desde una base de datos vacía (que parece ser la intención de OP), simplemente suelte y vuelva a crear la base de datos y vuelva a ejecutar migrate (En lugar de usar flush):

Si prefiere comenzar desde una base de datos vacía y volver a ejecutar todas las migraciones, debe descartar y volver a crear la base de datos y luego ejecutar la migración en su lugar.

Entonces, para el caso de OP, solo necesitamos:

  1. Soltar la base de datos de MySQL
  2. Recrear la base de datos
  3. Correr python manage.py migrate

Te mostramos comentarios y valoraciones

Recuerda algo, que tienes permiso de agregar una reseña si te ayudó.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *