I am experiencing an error while performing django unit tests, I have not experienced this before, and went to Google all day.
I get this error in the terminal after running the django manage.py test:
Error: Database test_unconvention couldn't be flushed. Possible reasons: * The database isn't running or isn't configured correctly. * At least one of the expected database tables doesn't exist. * The SQL was invalid. Hint: Look at the output of 'django-admin.py sqlflush'. That the SQL this command wasn't able to run. The full error: (1146, "Table 'test_unconvention.media_image' doesn't exist")
The media_images table is indicated when django-admin.py sqlflush is started and is generated normally when I run django manage.py syncdb.
This is an image model that seems troublesome:
from django.db import models from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes import generic class Image(models.Model): local_image = models.ImageField(upload_to="uploads/%Y/%m/%d/", height_field="height", width_field="width", max_length=255, null=True, blank=True) remote_image = models.CharField(editable=False, max_length=255, null=True, blank=True) thirdparty_page = models.CharField(editable=False, max_length=255, blank=True, null=True) size = models.CharField(editable=False, max_length=25, blank=True, null=True) content_type = models.ForeignKey(ContentType) object_id = models.PositiveIntegerField() content_object = generic.GenericForeignKey('content_type', 'object_id') height = models.PositiveIntegerField(editable=False, blank=True, null=True) width = models.PositiveIntegerField(editable=False, blank=True, null=True) created_at = models.DateTimeField(editable=False, auto_now_add=True) updated_at = models.DateTimeField(editable=False, auto_now=True) def __unicode__(self): if self.local_image: return self.local_image.name else: return self.remote_image
I appreciate any help, please let me know if I have to provide more information!
python django mysql unit-testing mysql-error-1146
Martin ogden
source share