code: def process_relation_class(self, relation_class, context, assert_declared=False):
          
          relation_class.database = self.database
          relation_class._connection = self.connection
          relation_class._heading = Heading()
          # instantiate the class, declare the table if not already
          instance = relation_class()
          is_declared = instance.is_declared
          if not is_declared:
              if not self.create_tables or assert_declared:
                  raise DataJointError('Table not declared %s' % instance.table_name)
              else:
                  instance.declare(context)
          is_declared = is_declared or instance.is_declared
  
          # fill values in Lookup tables from their contents property
          if isinstance(instance, Lookup) and hasattr(instance, 'contents') and is_declared:
              contents = list(instance.contents)
              if len(contents) > len(instance):
                  if instance.heading.has_autoincrement:
                      warnings.warn(
                          'Contents has changed but cannot be inserted because {table} has autoincrement.'.format(
                              table=instance.__class__.__name__))
                  else:
                      instance.insert(contents, skip_duplicates=True)
docs: assign schema properties to the relation class and declare the table