code: def compare_enums(autogen_context, upgrade_ops, schema_names):
      
      to_add = set()
      for schema in schema_names:
          default = autogen_context.dialect.default_schema_name
          if schema is None:
              schema = default
  
          defined = get_defined_enums(autogen_context.connection, schema)
          declared = get_declared_enums(autogen_context.metadata, schema, default)
          for name, new_values in declared.items():
              old_values = defined.get(name)
              # Alembic will handle creation of the type in this migration, so
              # skip undefined names.
              if name in defined and new_values.difference(old_values):
                  to_add.add((schema, name, old_values, new_values))
  
      for schema, name, old_values, new_values in sorted(to_add):
          op = SyncEnumValuesOp(schema, name, old_values, new_values)
          upgrade_ops.ops.append(op)
docs: Walk the declared SQLAlchemy schema for every referenced Enum, walk the PG
      schema for every definde Enum, then generate SyncEnumValuesOp migrations
      for each defined enum that has grown new entries when compared to its
      declared version.
  
      Enums that don't exist in the database yet are ignored, since
      SQLAlchemy/Alembic will create them as part of the usual migration process.