title: Upgrading from Django 1.6 (with south) to 1.8 doesn't modify 'last_login' on the user table
body: <p>I have upgraded from Django 1.6.5 (with south migrations) to Django 1.8. I have followed the instructions here:
  <a href="https://docs.djangoproject.com/en/1.8/topics/migrations/#upgrading-from-south" rel="nofollow noreferrer">https://docs.djangoproject.com/en/1.8/topics/migrations/#upgrading-from-south</a></p>
  
  <p>So, I remove South, delete my previous migrations and run <code>python manage.py makemigrations</code> which makes a new migration file. Then I run <code>python manage.py migrate --fake-initial</code> to fake the initial migration. Then I run <code>python manage.py migrate</code>.</p>
  
  <p>It all runs fine with no errors.</p>
  
  <p>I have a custom user model which inherits <code>AbstractBaseUser</code>. In Django 1.8 it seems there is a change to the <code>last_login</code> field where it is now able to accept a <code>null</code> value (<a href="https://docs.djangoproject.com/fr/1.8/ref/contrib/auth/#django.contrib.auth.models.User.last_login" rel="nofollow noreferrer">https://docs.djangoproject.com/fr/1.8/ref/contrib/auth/#django.contrib.auth.models.User.last_login</a>).</p>
  
  <p>The problem I have, is that the migration does not change the <code>last_login</code> field in the database table to accept null values. As a result, when I try and save I get a <code>IntegrityError</code> saying <code>(1048, "Column 'last_login' cannot be null")</code>.</p>
  
  <p>How can I fix this? Do I need to manually change the field in the database, or is there a way to fix it with migrations?</p>
  
  <p><strong>Edit</strong>
  When I run <code>python manage.py migrate --fake-initial</code> the output is this:
  Running migrations:</p>
  
  <pre><code>  Rendering model states... DONE
    Applying contenttypes.0001_initial... FAKED
    Applying contenttypes.0002_remove_content_type_name... OK
    Applying auth.0001_initial... FAKED
    Applying auth.0002_alter_permission_name_max_length... OK
    Applying auth.0003_alter_user_email_max_length... OK
    Applying auth.0004_alter_user_username_opts... OK
    Applying auth.0005_alter_user_last_login_null... OK
    Applying auth.0006_require_contenttypes_0002... OK
    Applying core.0001_initial... FAKED
    Applying admin.0001_initial... FAKED
    Applying sessions.0001_initial... FAKED
  </code></pre>
  
  <p>However, when I look in the database I still see <code>user_last_login</code> as not-null.</p>