-
- class ImplicitForeignKeyConstraint(ForeignKeyConstraint):
-
- def __init__(self, columns, refcolumns, primary_key=None, **kwargs):
-
- super(ImplicitForeignKeyConstraint, self).__init__(
- columns, refcolumns, **kwargs)
- self.primary_key_flag = primary_key
-
- def _set_parent(self, table):
- referenced_table = table.metadata.tables[
- self.elements[0].target_fullname.split('.')[0]]
- for column in self.columns:
- new_column = getattr(referenced_table.c, column).copy()
- if self.primary_key_flag is not None:
- new_column.primary_key = self.primary_key_flag
- table.append_column(new_column)
- super(ImplicitForeignKeyConstraint, self)._set_parent(table)
-