django – "manage.py test" fails "table already exists"

Question:

I’m new to the django world. Running some tutorial apps, and when running python manage.py test i’m getting a failure saying that the table already exists. I’m not sure what is going on. I am also running south, and I got no errors when migrating the schema.

Any insight is greatly appreciated.

TIA
Joey

Asked By: Joey Blake

||

Answers:

It might be an error in one of your south migrations. You don’t see the problem on the real db because the migration has been executed (with the–fake option maybe)

You can try to recreate the db from scracth and see if it works.

You can also disable South for unit-tests by adding SOUTH_TESTS_MIGRATE = False in your settings.py. With this option a regular syncdb will be done to create the test database. It will also speed the testing process.

I hope it helps

Answered By: luc

and if you are testing with nose:

DST_RUN_SOUTH_MIGRATIONS = False

Answered By: allo

This happens also with Nose when
--cover-package=userdata,incorrectname
One of package’s name is incorrect

Answered By: Bartosz Dabrowski

This also happened to me with a legacy code but for another reason.

I had two models with db_table referencing the same db table.
I know that is stupid, but it’s not my fault )

And I never found anything on the internet that could help me.
I was saved by verbosity set to 3 (manage.py test -v 3)
Hope this helps anyone.

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

class Bla2(Model):
    some_column = ...
    class Meta:
        db_table = 'some_table'
Answered By: Dmitriy Kuznetsov

You have to similar models, check it

Answered By: Muhammadalive
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.