Estoy tratando de cambiar el nombre de una de las aplicaciones en mi sitio web django. Hay otra aplicación que depende de él y de sus tablas de mysql. Fui por encima de todos los archivos en las dos aplicaciones y cambiar las instancias de la edad de nombre a la nueva.

Sin embargo, ahora me encuentro con este mensaje de error al intentar realizar una migración:

File "/Users/Limor/anaconda/lib/python2.7/site-packages/Django-1.10a1-py2.7.egg/django/db/migrations/loader.py", line 287,
 in check_consistent_history
    migration[0], migration[1], parent[0], parent[1],
django.db.migrations.exceptions.InconsistentMigrationHistory: 
  Migration manual_tasks.0001_initial is applied before its dependency beta.0001_initial

No podía encontrar una solución para este problema, y si he intentado comentar la función particular que plantea la excepción corro en temas relacionados con el camino. Estoy condenado, o hay una manera de arreglarlo?

Gracias!

EDICIÓN:

el nombre antiguo es version_1, la nueva es la beta y la otra aplicación que se basa en que es manual_tasks.

Aquí está el código de la estructura:

~/website/
|-- .ebextensions
|   `-- django.config
|-- project
|   |-- __init__.py
|   |-- local_settings.py
|   |-- settings.py
|   |-- urls.py
|   `-- wsgi.py
|-- db.sqlite3
|-- manage.py
|--beta
|   |-- __init__.py
|   |-- admin.py
|   |-- apps.py
|   |-- local_settings.py
|   |-- models.py
|   |-- tests.py
|   |-- urls.py
|   |-- views.py
|   |-- migrations
|       |-- __init__.py
|       |-- 0001__initial.py
|   |-- static
|       |-- assets
|       |-- images
|   |-- templates
|--manual_tasks
|   |-- __init__.py
|   |-- admin.py
|   |-- apps.py
|   |-- models.py
|   |-- tests.py
|   |-- urls.py
|   |-- views.py
|   |-- migrations
|       |-- __init__.py
|       |-- 0001__initial.py
|   |-- static
|       |-- assets
|       |-- images
|   |-- templates
`-- requirements.txt

La esperanza de que tiene más sentido!

El problema está en que la migración de las dependencias, pero es difícil de averiguar a partir de esta información. Actualización de su pregunta con el antiguo nombre de la aplicación nuevo nombre de la aplicación y dar una indicación de lo que la estructura del proyecto se ve ahora
sí, esto hace las cosas mucho más claras en realidad y no hay esperanza ya que sólo hay una migración. Probablemente puede ser fija simplemente editando el archivo de migración. Podría publicar ellos si no son muy largos. si son a largo post sólo la dependencia de la sección y los campos que se muestran relaciones de clave externa, etc
También, si la base de datos no tiene ningún dato en ella. O los datos no es importante, sólo se puede eliminar la base de datos, eliminar los archivos de migración y hacerlo todo de nuevo en menos de un minuto
Gracias! Que fue muy útil y yo era capaz de averiguar 🙂

OriginalEl autor Limg | 2016-06-04

3 Comentarios

  1. 5

    Creo que ya se ejecuta migración llamado version_1.0001_initial antes de que se cambió el nombre de la aplicación para beta. Todo lo que necesitas es actualizar la base de datos de los registros en la tabla django_migrations y cambiar el nombre de edad de la aplicación de las migraciones para el nuevo nombre mediante esta instrucción SQL:

    UPDATE django_migrations SET app = 'beta' WHERE app = 'version_1';
    Hombre, ¿cómo se puede hacer esto desde la ./manage.py shell? Eso es todo lo que tienen acceso demasiado 🙁
    Puede ejecutar raw consulta directamente, por ejemplo: docs.djangoproject.com/en/1.10/topics/db/sql/…

    OriginalEl autor Erik Telepovský

  2. 0

    En mi caso, cuando he examinado el contenido de la django_migrations en la tabla I se podría confirmar que el problema en esta InconsistentMigrationHistory excepción estaba tratando de subir. Así, uno 0001_initial registro de la aplicación de un programa de migración para dependiente de la aplicación de un ningún registro de los «independientes» uno.

    Incluso me llegó hasta el punto donde el nombre de una aplicación que yo estaba tratando de ejecutar django-admin migrate en no la materia. Que me hizo creer que hay algún tipo de verificación de cordura sucediendo en la mesa antes de cualquier operación de migración en realidad se lleva a cabo.

    Eliminar el registro de base de datos y llamar a la migrate subcomando de la dependencia en primer lugar, retire el bloque. Tanto, requiere --fake-initial bandera, ya que todos los Models ya estaban presentes.

    OriginalEl autor Felicio

  3. 0

    Para lo que vale, y si ayuda a alguien en una situación similar:

    Tuve este problema al copiar más de un correcta de la base de datos desde el servidor de producción a una instancia de prueba, para emular a los datos, por lo que yo sabía de la base de datos estaba en lo correcto. No he cavado en por qué este conjunto de migraciones fuera de línea, pero (y quiero destacar que yo podría fácilmente experimento sobre esto, porque yo tenía datos de copia de seguridad) simplemente vaciar la django_migrations mesa y ejecución de python manage.py migrations <app_name> --fake resuelto para mí.

    OriginalEl autor NotSimon

Dejar respuesta

Please enter your comment!
Please enter your name here