def init_foreign_keys(self): for _, t in self.meta().tables.iteritems(): for _fk in t.foreign_keys: a = create_column(self._tables[_fk.parent.table.name], str(_fk.parent.key), _fk.parent) b = create_column(self._tables[_fk.column.table.name], str(_fk.column.key), _fk.column) fk = ForeignKey(a, b) self._tables[a.table.name].set_foreign_key(a.name, fk) self._tables[b.table.name].set_foreign_key(str(a), fk)
def __init__(self, entity=None, uri=None, owner=None, size=None, name=None, primary_key=None, columns=None): if entity is not None: self.name = entity.name elif name is not None: self.name = name self._entity = entity self.uri = uri self.owner = owner self.size = size if entity is not None: self._columns = map(lambda c: create_column(self, str(c.name), c), entity.columns) elif columns is not None: self._columns = map(lambda c: create_column(self, c), columns) else: self._columns = None self._fks = {} self.primary_key = primary_key