2011-02-03 17 views
7

Soy nuevo en el mundo django. Ejecutando algunas aplicaciones tutoriales, y cuando ejecuto la prueba python manage.py recibo un error diciendo que la tabla ya existe. No estoy seguro de lo que está pasando. También estoy corriendo hacia el sur, y no obtuve errores al migrar el esquema.django - "manage.py test" failed "table already exists"

Cualquier idea es muy apreciada.

TIA Joey

+0

posiblemente relacionados: http://stackoverflow.com/questions/3090648/django-south-table-already-exists – payne

+0

SÍ! Eso fue todo, cometí algunos errores y la migración se desincronizó con el DB. las instalaciones limpias lo arreglaron bien. –

Respuesta

15

Podría ser un error en uno de sus migraciones al sur. No ve el problema en la base de datos real porque la migración se ha ejecutado (con la opción - falsa, tal vez)

Puede intentar recrear la base de datos desde scracth y ver si funciona.

También puede desactivar South para pruebas unitarias agregando SOUTH_TESTS_MIGRATE = False en su settings.py. Con esta opción, se realizará un syncdb regular para crear la base de datos de prueba. También acelerará el proceso de prueba.

espero que ayude

+0

respuesta muy perspicaz! –

+0

si tengo que dibujar db desde cero, ¿cuál es el beneficio de South? – Ahsan

+0

@Ahsan the DB se crea desde cero solo para las pruebas y ocurre de esta manera ya sea que use South o no. –

0

y si está probando con la nariz:

DST_RUN_SOUTH_MIGRATIONS = False

0

Esto sucede también con la nariz cuando
--cover-package=userdata,incorrectname
Una de nombre del paquete es incorrecto

1

Esto también me ha pasado con un código heredado pero por otra razón.

Tenía dos modelos con db_table que hace referencia a la misma tabla de db. Sé que es estúpido, pero no es mi culpa)

Y nunca encontré nada en Internet que pueda ayudarme. Me salvó la verbosidad establecida en 3 (manage.py test -v 3) Espero que esto ayude a cualquiera.

class Bla1(Model): 
    some_column = ... 
    class Meta: 
     db_table = 'some_table' 

class Bla2(Model): 
    some_column = ... 
    class Meta: 
     db_table = 'some_table' 
Cuestiones relacionadas