spacepaste

  1.  
  2. class ImplicitForeignKeyConstraint(ForeignKeyConstraint):
  3. def __init__(self, columns, refcolumns, primary_key=None, **kwargs):
  4. super(ImplicitForeignKeyConstraint, self).__init__(
  5. columns, refcolumns, **kwargs)
  6. self.primary_key_flag = primary_key
  7. def _set_parent(self, table):
  8. referenced_table = table.metadata.tables[
  9. self.elements[0].target_fullname.split('.')[0]]
  10. for column in self.columns:
  11. new_column = getattr(referenced_table.c, column).copy()
  12. if self.primary_key_flag is not None:
  13. new_column.primary_key = self.primary_key_flag
  14. table.append_column(new_column)
  15. super(ImplicitForeignKeyConstraint, self)._set_parent(table)
  16.