title: Django "changes not reflected in a migration" with ImageField and custom storage
body: <p>My Django 1.8 app uses a third-party app (<a href="https://github.com/grantmcconnaughey/django-avatar" rel="nofollow">django-avatar</a>) whose model contains an ImageField. I'm also using a custom DEFAULT_FILE_STORAGE (S3BotoStorage from <a href="https://github.com/jschneier/django-storages" rel="nofollow">django-storages-redux</a>) in my project's settings.py. As a result, every time I run <code>manage.py migrate</code>, I get this warning about the avatar app:</p>
  
  <blockquote>
    <p>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.</p>
  </blockquote>
  
  <p>... because <a href="https://github.com/grantmcconnaughey/django-avatar/blob/2.1.1/avatar/migrations/0001_initial.py#L23" rel="nofollow">avatar's initial migration</a> references Django's default FileSystemStorage. Running makemigrations creates a new 0002 migration in the avatar app, to make its ImageField's storage match my project setting:</p>
  
  <pre><code>...
  migrations.AlterField(
      model_name='avatar',
      name='avatar',
      field=models.ImageField(storage=storages.backends.s3boto.S3BotoStorage(), max_length=1024, upload_to=avatar.models.avatar_file_path, blank=True),
  ),
  </code></pre>
  
  <p>The problem is, this new migration is created in avatar installed in python's site-packages, outside my project (so outside git control, unavailable for deployment, etc.).</p>
  
  <p><strong>What's the right way to handle migrations for a third-party app that uses an ImageField</strong> (or FileField) in a project with custom DEFAULT_FILE_STORAGE? I've considered:</p>
  
  <ul>
  <li><p>Just ignore the warning. The migration to change storage doesn't actually
  affect the DB schema, and since my project's DEFAULT_FILE_STORAGE has been
  S3BotoStorage since the start, no data migration is needed.</p></li>
  <li><p>Use <a href="https://docs.djangoproject.com/en/1.8/ref/settings/#migration-modules" rel="nofollow">settings.MIGRATION_MODULES</a> to move avatar's
  migrations into my project. (And then carefully port over every future
  avatar migration to my copy--which seems error-prone.) 
  [EDIT: <a href="https://groups.google.com/d/msg/django-users/0JrYUVhuvhw/cekgOp-TwyMJ" rel="nofollow">this comment</a> on the 
  django-users mailing list suggests this is the wrong approach.]</p></li>
  <li><p>Ask the django-avatar (or django-storages-redux) maintainers to change... what?
  (BTW, S3BotoStorage is already <a href="https://github.com/jschneier/django-storages/blob/1.3/storages/backends/s3boto.py#L65" rel="nofollow">deconstructible</a> -- that's not the problem.)</p></li>
  <li><p>Or...?</p></li>
  </ul>