code: def diff_foreign_key(self, key1, key2):
          
          key1_unquoted_local_columns = [
              c.lower() for c in key1.get_unquoted_local_columns()
          ]
          key2_unquoted_local_columns = [
              c.lower() for c in key2.get_unquoted_local_columns()
          ]
  
          if key1_unquoted_local_columns != key2_unquoted_local_columns:
              return True
  
          key1_unquoted_foreign_columns = [
              c.lower() for c in key1.get_unquoted_foreign_columns()
          ]
          key2_unquoted_foreign_columns = [
              c.lower() for c in key2.get_unquoted_foreign_columns()
          ]
  
          if key1_unquoted_foreign_columns != key2_unquoted_foreign_columns:
              return True
  
          if (
              key1.get_unqualified_foreign_table_name()
              != key2.get_unqualified_foreign_table_name()
          ):
              return True
  
          if key1.on_update() != key2.on_update():
              return True
  
          if key1.on_delete() != key2.on_delete():
              return True
  
          return False
docs: :type key1: ForeignKeyConstraint
  
          :type key2: ForeignKeyConstraint
  
          :rtype: bool