def get_schema(self, delta_obj): deltas = self.get_deltas(None, delta_obj.id, take_closest_snapshot=True) schema = so.Schema() deltas.apply(schema) return schema
async def readschema(self): schema = so.Schema() await self._init_introspection_cache() await self.read_modules(schema) await self.read_scalars(schema) await self.read_attributes(schema) await self.read_actions(schema) await self.read_events(schema) await self.read_objtypes(schema) await self.read_links(schema) await self.read_link_properties(schema) await self.read_policies(schema) await self.read_attribute_values(schema) await self.read_functions(schema) await self.read_constraints(schema) await self.read_indexes(schema) await self.order_attributes(schema) await self.order_actions(schema) await self.order_events(schema) await self.order_scalars(schema) await self.order_functions(schema) await self.order_link_properties(schema) await self.order_links(schema) await self.order_objtypes(schema) await self.order_policies(schema) return schema
async def readschema(self, *, schema=None, modules=None, exclude_modules=None): if schema is None: schema = so.Schema() async with self.connection.transaction(): schema = await self.read_modules(schema, only_modules=modules, exclude_modules=exclude_modules) schema = await self.read_scalars(schema, only_modules=modules, exclude_modules=exclude_modules) schema = await self.read_attributes( schema, only_modules=modules, exclude_modules=exclude_modules) schema = await self.read_objtypes(schema, only_modules=modules, exclude_modules=exclude_modules) schema = await self.read_casts(schema, only_modules=modules, exclude_modules=exclude_modules) schema = await self.read_links(schema, only_modules=modules, exclude_modules=exclude_modules) schema = await self.read_link_properties( schema, only_modules=modules, exclude_modules=exclude_modules) schema = await self.read_operators(schema, only_modules=modules, exclude_modules=exclude_modules) schema = await self.read_functions(schema, only_modules=modules, exclude_modules=exclude_modules) schema = await self.read_constraints( schema, only_modules=modules, exclude_modules=exclude_modules) schema = await self.read_indexes(schema, only_modules=modules, exclude_modules=exclude_modules) schema = await self.read_attribute_values( schema, only_modules=modules, exclude_modules=exclude_modules) schema = await self.order_attributes(schema) schema = await self.order_scalars(schema) schema = await self.order_operators(schema) schema = await self.order_functions(schema) schema = await self.order_link_properties(schema) schema = await self.order_links(schema) schema = await self.order_objtypes(schema) return schema
def upgrade(self, start_rev=None, end_rev=None, new_format_ver=sd.Delta.CURRENT_FORMAT_VERSION): if end_rev is None: end_rev = self.get_delta(id='HEAD', compat_mode=True).id schema = so.Schema() context = sd.DeltaUpgradeContext(sd.Delta.CURRENT_FORMAT_VERSION) for d in self.walk_deltas(end_rev, start_rev, reverse=True, compat_mode=True): d.upgrade(context, schema) d.apply(schema) d.checksum = schema.get_checksum() self.write_delta(d)
def _cumulative_delta(self, ref1, ref2): d = None v1 = self.load_delta(ref1) if ref1 else None if isinstance(ref2, so.Schema): v2 = None v2_schema = ref2 else: v2 = self.load_delta(ref2) v2_schema = self.get_schema(v2) if v1 is not None: v1_schema = self.get_schema(v1) else: v1_schema = so.Schema() if v1 is None or v1.checksum != v2_schema.get_checksum(): d = sd.delta_schemas(v2_schema, v1_schema) else: d = None return v1, v1_schema, v2, v2_schema, d
def get_schema_at(self, ref): if ref is None: return so.Schema() else: delta = self.load_delta(ref) return self.get_schema(delta)