457 physical schema changes should be handled by repository's schema hooks |
457 physical schema changes should be handled by repository's schema hooks |
458 """ |
458 """ |
459 rtype = str(rtype) |
459 rtype = str(rtype) |
460 if rtype in self._synchronized: |
460 if rtype in self._synchronized: |
461 return |
461 return |
462 self._synchronized.add(rtype) |
462 if syncrdefs and syncperms and syncprops: |
|
463 self._synchronized.add(rtype) |
463 rschema = self.fs_schema.rschema(rtype) |
464 rschema = self.fs_schema.rschema(rtype) |
464 reporschema = self.repo.schema.rschema(rtype) |
465 reporschema = self.repo.schema.rschema(rtype) |
465 if syncprops: |
466 if syncprops: |
466 assert reporschema.eid, reporschema |
467 assert reporschema.eid, reporschema |
467 self.rqlexecall(ss.updaterschema2rql(rschema, reporschema.eid), |
468 self.rqlexecall(ss.updaterschema2rql(rschema, reporschema.eid), |
488 * permissions if `syncperms` |
489 * permissions if `syncperms` |
489 """ |
490 """ |
490 etype = str(etype) |
491 etype = str(etype) |
491 if etype in self._synchronized: |
492 if etype in self._synchronized: |
492 return |
493 return |
493 self._synchronized.add(etype) |
494 if syncrdefs and syncperms and syncprops: |
|
495 self._synchronized.add(etype) |
494 repoeschema = self.repo.schema.eschema(etype) |
496 repoeschema = self.repo.schema.eschema(etype) |
495 try: |
497 try: |
496 eschema = self.fs_schema.eschema(etype) |
498 eschema = self.fs_schema.eschema(etype) |
497 except KeyError: |
499 except KeyError: |
498 return # XXX somewhat unexpected, no?... |
500 return # XXX somewhat unexpected, no?... |
580 subjtype, objtype = str(subjtype), str(objtype) |
582 subjtype, objtype = str(subjtype), str(objtype) |
581 rschema = self.fs_schema.rschema(rtype) |
583 rschema = self.fs_schema.rschema(rtype) |
582 reporschema = self.repo.schema.rschema(rschema) |
584 reporschema = self.repo.schema.rschema(rschema) |
583 if (subjtype, rschema, objtype) in self._synchronized: |
585 if (subjtype, rschema, objtype) in self._synchronized: |
584 return |
586 return |
585 self._synchronized.add((subjtype, rschema, objtype)) |
587 if syncperms and syncprops: |
586 if rschema.symmetric: |
588 self._synchronized.add((subjtype, rschema, objtype)) |
587 self._synchronized.add((objtype, rschema, subjtype)) |
589 if rschema.symmetric: |
|
590 self._synchronized.add((objtype, rschema, subjtype)) |
588 rdef = rschema.rdef(subjtype, objtype) |
591 rdef = rschema.rdef(subjtype, objtype) |
589 if rdef.infered: |
592 if rdef.infered: |
590 return # don't try to synchronize infered relation defs |
593 return # don't try to synchronize infered relation defs |
591 repordef = reporschema.rdef(subjtype, objtype) |
594 repordef = reporschema.rdef(subjtype, objtype) |
592 confirm = self.verbosity >= 2 |
595 confirm = self.verbosity >= 2 |