开发者

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

开发者 https://www.devze.com 2023-02-08 10:35 出处:网络
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

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 n开发者_开发问答o errors when migrating the schema.

Any insight is greatly appreciated.

TIA Joey


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


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'


and if you are testing with nose:

DST_RUN_SOUTH_MIGRATIONS = False


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


You have to similar models, check it

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号