title: Django Test Error: relation does not exist
body: <p>I'm using Django 1.6 with Python 3.3 on Ubuntu 13.10 and Postgres.</p>
  
  <p>I have a model <code>User</code> defined as follows:</p>
  
  <pre><code>from django.db import models
  from django.contrib.auth.models import AbstractUser
  
  from common.mixins import TimestampMixin
  
  
  class User(TimestampMixin, AbstractUser):
      auth_key = models.CharField(max_length=16)
  
      def __str__(self):
          if self.first_name:
              if self.last_name:
                  return "{0} {1}'s Profile".format(
                      self.first_name, self.last_name)
              else:
                  return "{0}'s Profile".format(self.first_name)
          else:
              return "{0}'s Profile".format(self.username)
  </code></pre>
  
  <p>I have a test for <code>__str __</code> as follows:</p>
  
  <pre><code>from django.test import TestCase
  
  from accounts.models import User
  from common.tests.fixtureless import create_instance
  
  
  class UserTest(TestCase):
      def test_str(self):
          initial = {
              'username': 'test_username',
              'first_name': 'test_first_name',
              'last_name': 'test_last_name',
          }
          user = create_instance(User, **initial)
          user.save()
          expected = "test_first_name test_last_name's Profile"
          self.assertEqual(user.__str__(), expected)
          user.delete()
  
          del(initial['last_name'])
          user = create_instance(User, **initial)
          user.save()
          expected = "test_first_name's Profile"
          self.assertEqual(user.__str__(), expected)
          user.delete()
  
          del(initial['first_name'])
          user = create_instance(User, **initial)
          user.save()
          expected = "test_username's Profile"
          self.assertEqual(user.__str__(), expected)
          user.delete()
  </code></pre>
  
  <p>I can run my test suite properly about 20% of the time.  Sometimes, however, I receive the following failure:</p>
  
  <pre><code>ERROR: test_str (blind_tiger.blind_tiger.apps.accounts.tests.UserTest)
  ----------------------------------------------------------------------
  Traceback (most recent call last):
    File "/home/ricomoss/.virtualenvs/blind_tiger/lib/python3.3/site-packages/django/db/backends/util.py", line 53, in execute
      return self.cursor.execute(sql, params)
  psycopg2.ProgrammingError: relation "accounts_user" does not exist
  LINE 1: INSERT INTO "accounts_user" ("password", "last_login", "is_s...
                      ^
  
  
  The above exception was the direct cause of the following exception:
  
  Traceback (most recent call last):
    File "/home/ricomoss/workspace/ses/blind_tiger/blind_tiger/settings/../apps/accounts/tests/models.py", line 18, in test_str
      user.save()
    File "/home/ricomoss/.virtualenvs/blind_tiger/lib/python3.3/site-packages/django/db/models/base.py", line 545, in save
      force_update=force_update, update_fields=update_fields)
    File "/home/ricomoss/.virtualenvs/blind_tiger/lib/python3.3/site-packages/django/db/models/base.py", line 573, in save_base
      updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
    File "/home/ricomoss/.virtualenvs/blind_tiger/lib/python3.3/site-packages/django/db/models/base.py", line 654, in _save_table
      result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
    File "/home/ricomoss/.virtualenvs/blind_tiger/lib/python3.3/site-packages/django/db/models/base.py", line 687, in _do_insert
      using=using, raw=raw)
    File "/home/ricomoss/.virtualenvs/blind_tiger/lib/python3.3/site-packages/django/db/models/manager.py", line 232, in _insert
      return insert_query(self.model, objs, fields, **kwargs)
    File "/home/ricomoss/.virtualenvs/blind_tiger/lib/python3.3/site-packages/django/db/models/query.py", line 1511, in insert_query
      return query.get_compiler(using=using).execute_sql(return_id)
    File "/home/ricomoss/.virtualenvs/blind_tiger/lib/python3.3/site-packages/django/db/models/sql/compiler.py", line 898, in execute_sql
      cursor.execute(sql, params)
    File "/home/ricomoss/.virtualenvs/blind_tiger/lib/python3.3/site-packages/django/db/backends/util.py", line 53, in execute
      return self.cursor.execute(sql, params)
    File "/home/ricomoss/.virtualenvs/blind_tiger/lib/python3.3/site-packages/django/db/utils.py", line 99, in __exit__
      six.reraise(dj_exc_type, dj_exc_value, traceback)
    File "/home/ricomoss/.virtualenvs/blind_tiger/lib/python3.3/site-packages/django/utils/six.py", line 490, in reraise
      raise value.with_traceback(tb)
    File "/home/ricomoss/.virtualenvs/blind_tiger/lib/python3.3/site-packages/django/db/backends/util.py", line 53, in execute
      return self.cursor.execute(sql, params)
  django.db.utils.ProgrammingError: relation "accounts_user" does not exist
  LINE 1: INSERT INTO "accounts_user" ("password", "last_login", "is_s...
  </code></pre>
  
  <p>It's frustrating because if I put a <code>try/except</code> around the offending <code>user.save()</code> so I can inspect the object I <em>never</em> see this error.</p>
  
  <p>Never yields this error:</p>
  
  <pre><code>try:
      user.save()
  except:
      raise Exception(user.__dict__)
  </code></pre>
  
  <p>Any suggestions?</p>