old_contents: # -*- coding: utf-8 -*-
  from os import path
  
  from django.apps import apps
  from django.contrib.auth import get_user_model
  from django.core.management.base import BaseCommand, CommandError
  from django.core.management.commands.flush import Command as Flush
  
  from .fake import Command as Fake
  from .migrate import Command as Migrate
  
  
  class Command(BaseCommand):
      help = 'Reapplies core migrations and generates fake data.'
  
      def __init__(self, *args, **kwargs):
          super(Command, self).__init__(*args, **kwargs)
          self.UserModel = get_user_model()
          self.username_field = self.UserModel._meta.get_field(
              self.UserModel.USERNAME_FIELD)
  
      def add_arguments(self, parser):
          Migrate().add_arguments(parser)
          Fake().add_arguments(parser)
  
      def handle(self, *args, **options):
          verbosity = options['verbosity']
  
          # Flush all existing database records.
          flush = Flush()
          flush.handle(**options)
          if verbosity > 0:
              self.stdout.write(self.style.SUCCESS('Database flushed.'))
  
          # Run migrations for all Baby Buddy apps.
          for config in apps.app_configs.values():
              if path.split(path.split(config.path)[0])[1] == 'babybuddy':
                  migrate = Migrate()
                  options['app_label'] = config.name
                  options['migration_name'] = 'zero'
  
                  try:
                      migrate.handle(*args, **options)
                  except CommandError:
                      # Ignore apps without migrations.
                      pass
  
          # Run other migrations.
          migrate = Migrate()
          options['app_label'] = None
          options['migration_name'] = None
          migrate.handle(*args, **options)
  
          # Populate database with fake data.
          fake = Fake()
          fake.handle(*args, **options)
  
          if verbosity > 0:
              self.stdout.write(self.style.SUCCESS('Database reset complete.'))
  
new_contents: # -*- coding: utf-8 -*-
  from os import path
  
  from django.apps import apps
  from django.contrib.auth import get_user_model
  from django.core.cache import cache
  from django.core.management.base import BaseCommand, CommandError
  from django.core.management.commands.flush import Command as Flush
  
  from .fake import Command as Fake
  from .migrate import Command as Migrate
  
  
  class Command(BaseCommand):
      help = 'Reapplies core migrations and generates fake data.'
  
      def __init__(self, *args, **kwargs):
          super(Command, self).__init__(*args, **kwargs)
          self.UserModel = get_user_model()
          self.username_field = self.UserModel._meta.get_field(
              self.UserModel.USERNAME_FIELD)
  
      def add_arguments(self, parser):
          Migrate().add_arguments(parser)
          Fake().add_arguments(parser)
  
      def handle(self, *args, **options):
          verbosity = options['verbosity']
  
          # Flush all existing database records.
          flush = Flush()
          flush.handle(**options)
          if verbosity > 0:
              self.stdout.write(self.style.SUCCESS('Database flushed.'))
  
          # Run migrations for all Baby Buddy apps.
          for config in apps.app_configs.values():
              if path.split(path.split(config.path)[0])[1] == 'babybuddy':
                  migrate = Migrate()
                  options['app_label'] = config.name
                  options['migration_name'] = 'zero'
  
                  try:
                      migrate.handle(*args, **options)
                  except CommandError:
                      # Ignore apps without migrations.
                      pass
  
          # Run other migrations.
          migrate = Migrate()
          options['app_label'] = None
          options['migration_name'] = None
          migrate.handle(*args, **options)
  
          # Clear cache.
          cache.clear()
          if verbosity > 0:
              self.stdout.write(self.style.SUCCESS('Cache cleared.'))
  
          # Populate database with fake data.
          fake = Fake()
          fake.handle(*args, **options)
  
          if verbosity > 0:
              self.stdout.write(self.style.SUCCESS('Database reset complete.'))
  
subject: Clear cache during `reset` operation