code: def handle(self, *args, **options):
          
          self.db = options.get("database", DEFAULT_DB_ALIAS)
          self.current_name = connections[self.db].settings_dict["NAME"]
          self.compare_name = options.get("db_name")
          self.lines = options.get("lines")
          self.ignore = int(options.get('ignore'))
  
          if not self.compare_name:
              self.compare_name = "%s_compare" % self.current_name
          
          command = NASHVEGAS.get("dumpdb", "pg_dump -s {dbname}")
          
          print "Getting schema for current database..."
          current_sql = Popen(
              command.format(dbname=self.current_name),
              shell=True,
              stdout=PIPE
          ).stdout.readlines()
          
          print "Getting schema for fresh database..."
          self.setup_database()
          connections[self.db].close()
          connections[self.db].settings_dict["NAME"] = self.compare_name
          try:
              call_command("syncdb", interactive=False, verbosity=0, migrations=False)
              new_sql = Popen(
                  command.format(dbname=self.compare_name).split(),
                  stdout=PIPE
              ).stdout.readlines()
          finally:
              connections[self.db].close()
              connections[self.db].settings_dict["NAME"] = self.current_name
              self.teardown_database()
          
          print "Outputing diff between the two..."
          print "".join(difflib.unified_diff(normalize_sql(current_sql, self.ignore),
                                             normalize_sql(new_sql, self.ignore),
                                             n=int(self.lines)))
docs: Compares current database with a migrations.
          
          Creates a temporary database, applies all the migrations to it, and
          then dumps the schema from both current and temporary, diffs them,
          then report the diffs to the user.