title: Django 'No such table:" for custom user profile, why?
body: <p>I'm tearing my hair out trying to figure out why my custom user profile view no longer works. I'm using django-allauth, and have customised my user profile by creating a model with one-to-one field to the user. However, my view is throwing the error:</p>
  
  <pre><code>OperationalError at /profile/
  
  no such table: user_profile
  
  Request Method:     GET
  Request URL:    http://localhost:8000/profile/
  Django Version:     1.7.4
  Exception Type:     OperationalError
  Exception Value:    
  
  no such table: user_profile
  
  Exception Location:     /usr/local/lib/python2.7/dist-packages/django/db/backends/sqlite3/base.py in execute, line 485
  Python Executable:  /usr/bin/python
  Python Version:     2.7.6
  </code></pre>
  
  <p>My models.py with the custom user profile looks like this:</p>
  
  <pre><code>from django.contrib.auth.models import User
  from django.db.models.signals import post_save
  from django.db import models
  from allauth.account.models import EmailAddress
  
  
  class UserProfile(models.Model):
      user = models.OneToOneField(User, related_name='profile')
  
      # user visible settings
      stop_reminders = models.BooleanField ( default=False,
                               help_text = 'Flag if user wants reminders not to be sent.' )
  
      stop_all_email = models.BooleanField ( default=False,
                               help_text = 'Flag if user wants no email to be sent.' )
  
      # hidden settings
      is_premium =  models.BooleanField ( default=False,
                               help_text = 'Flag if user has the premium service.' )
  
      def __unicode__(self):
          return "{}'s profile".format(self.user.username)
  
      class Meta:
          db_table = 'user_profile'
  
      def account_verified(self):
          if self.user.is_authenticated:
              result = EmailAddress.objects.filter(email=self.user.email)
              if len(result):
                  return result[0].verified
          return False
  
  #User.profile = property(lambda u: UserProfile.objects.get_or_create(user=u)[0])
  
  def create_user_profile(sender, instance, created, **kwargs):
      if created:
         profile, created = UserProfile.objects.get_or_create(user=instance)
  
  post_save.connect(create_user_profile, sender=User)
  </code></pre>
  
  <p>My view, which is a place to set user profile settings looks like this:</p>
  
  <pre><code>@login_required
  def user_settings (request):
      """
      User settings view, handles changing of user settings and
      entry distribution (eventually)
      """
  
      if request.method == 'POST': # If the form has been submitted...
  
          form = UserProfileForm(request.POST, instance=request.user.profile) # A form bound to the POST data
  
          if form.is_valid(): # All validation rules pass
              form.save ()
  
              return render_to_response('sm/profile_update_success.html',
                                        {},
                                        context_instance=RequestContext(request))
  
      else:
          # create unbound form with initial values generated
          # from the user's profile
          form = UserProfileForm (instance=request.user.profile)
  
      return render ( request, 'profile.html', { 'form': form, } )
  </code></pre>
  
  <p>Until recently this was working fine, and I'm not sure what has changed to make it stop. Can anyone explain please?</p>
  
  <p>I'm using Django-1.7.4 and django-allauth-0.19.1. For debug I'm using sqllite, which I have tried creating using both <code>python manage.py migrate</code> and <code>python manage.py syncdb</code>. </p>