title: Django 1.7.1 requires a Default value for field - but no entry is in database. Why?
body: <p>I ran into a strange problem. I'm using Django 1.7.1 on Mac OS X Yosemite and I have configured a local MySQL database.</p>
  
  <p>Normally, I create a model and if I want to add another field, I just do a <code>./manage.py migrate</code> and Django creates a new database column.</p>
  
  <p>I did exactly that. Here's my model:</p>
  
  <pre><code>from django.db import models
  from django.utils.translation import ugettext as _
  
  
  class Product(models.Model):
      CATEGORY_CHOICES = (
          ('apphosting', _('Application Hosting')),
          ('webhosting', _('Web Hosting'))
      )
  
      category = models.CharField(max_length=25, choices=CATEGORY_CHOICES)
      name = models.CharField(max_length=25)
      price_monthly = models.FloatField()
  
      def __unicode__(self):
          return self.name
  </code></pre>
  
  <p>Please note that I have added the field <code>price_monthly</code>. Then, I did a <code>./manage.py migrate</code>:</p>
  
  <pre><code>(mysphere)dmanser@ragamuffin:~/git/mysphere on master [!?]$ ./manage.py migrate
  Operations to perform:
    Synchronize unmigrated apps: crispy_forms
    Apply all migrations: customers, sessions, admin, sites, flatpages, contenttypes, products, auth
  Synchronizing apps without migrations:
    Creating tables...
    Installing custom SQL...
    Installing indexes...
  Running migrations:
    No migrations to apply.
    Your models have changes that are not yet reflected in a migration, and so won't be applied.
    Run 'manage.py makemigrations' to make new migrations, and then re-run 'manage.py migrate' to apply them.
  </code></pre>
  
  <p>So ok, I do a <code>./manage.py makemigrations</code>, which results in:</p>
  
  <pre><code>(mysphere)dmanser@ragamuffin:~/git/mysphere on master [!?]$ ./manage.py makemigrations
  You are trying to add a non-nullable field 'price_monthly' to product without a default; we can't do that (the database needs something to populate existing rows).
  Please select a fix:
   1) Provide a one-off default now (will be set on all existing rows)
   2) Quit, and let me add a default in models.py
  Select an option:
  </code></pre>
  
  <p>The strange thing here is, that this model has no entry yet. So why should I need to provide a default value if there's no product in the database?</p>
  
  <p>I'm starting to pull my hair out and I have tried several things yesterday. After 3 hours, I gave up.</p>