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)
Example #2
0
    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