コード例 #1
0
 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
コード例 #2
0
ファイル: intromech.py プロジェクト: mcaramma/edgedb
    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
コード例 #3
0
ファイル: intromech.py プロジェクト: dungeon2567/edgedb
    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
コード例 #4
0
    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)
コード例 #5
0
    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
コード例 #6
0
 def get_schema_at(self, ref):
     if ref is None:
         return so.Schema()
     else:
         delta = self.load_delta(ref)
         return self.get_schema(delta)