server/migractions.py
changeset 10584 743ed2b13a6f
parent 9773 71a45642b3d2
child 10640 17bdc485c5b2
equal deleted inserted replaced
10393:fa4d59b88b29 10584:743ed2b13a6f
   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