Saltar al contenido

La columna de error de programación de Django no existe incluso después de ejecutar migraciones

No dudes en divulgar nuestra página y códigos con otro, danos de tu ayuda para ampliar nuestra comunidad.

Solución:

Tengo el mismo problema (la columna no existe) pero cuando intento ejecutar migrate no con makemigrations (Es el mismo problema creo)

  • Causa: eliminé los archivos de migración y los reemplacé con un único archivo de migración inicial simulado 0001 antes de ejecutar la migración para el último cambio

  • Solución:

    1. Eliminar tablas involucradas en esa migración de esa aplicación (considere una solución alternativa de respaldo, si corresponde)
    2. Elimine las filas responsables de la migración de esa aplicación de la tabla django_migrations en el que se registran las migraciones, así es como Django sabe qué migraciones se han aplicado y cuáles aún deben aplicarse.

Y aquí está cómo resolver este problema:

  • inicie sesión como usuario de postgres (mi usuario se llama posgres):

    sudo -i -u postgres

  • Abra una terminal sql y conéctese a su base de datos:

    psql -d database_name

  • Enumere su mesa y localice las mesas relacionadas con esa aplicación:

    dt

  • Suéltelos (considere el orden de caída con relaciones):

    DROP TABLE tablename ;

  • Enumere el registro de migración, verá las migraciones aplicadas clasificadas así:

identificación | aplicación | nombre | aplicado
–+——+——–+———+

SELECT * FROM django_migrations;
  • Elimine filas de migraciones de esa aplicación (puede eliminar por id o por aplicación, con la aplicación no olvide las ‘comillas’):

    DELETE FROM django_migrations WHERE app='yourapp';

  • cierre sesión y ejecute sus migraciones simplemente (tal vez ejecute makemigrations en su caso):

    python manage.py migrate --settings=your.settings.module_if_any

Nota: es posible que en tu caso no tengas que bajar todas las tablas de esa app y no todas las migraciones, solo las de los modelos que dan el problema.

Deseo que esto pueda ayudar.

Las migraciones de Django se registran en su base de datos en la tabla ‘django_migrations’. Así es como Django sabe qué migraciones se han aplicado y cuáles aún deben aplicarse.

Eche un vistazo a la tabla django_migrations en su base de datos. Puede ser que algo salió mal cuando se aplicó su migración. Por lo tanto, elimine la fila de la tabla que tiene el nombre del archivo de migración relacionado con esa columna que “no existe”. Luego, intente volver a ejecutar una migración.

Esto es lo que probé y funcionó:

  • Vaya y agregue manualmente la columna a su tabla
  • ejecute python manage.py makemigrations
  • retrocede, suelta esa columna que agregaste
  • ejecutar python manage.py migrar

Comentarios y puntuaciones del tutorial

¡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 *