- @staticmethod
- def fromJson(json):
- name = mustGetMember(json, 'name', [unicode], 'database')
- comment = getMember(json, 'comment', [unicode], 'database')
- tablesJson = mustGetMember(json, 'tables', [dict], 'database')
- tables = {}
- for name, tableJson in tablesJson.iteritems():
- tables[name] = TableSchema.fromJson(tableJson, "%s table" % name)
- idlPrefix = mustGetMember(json, 'idlPrefix', [unicode], 'database')
- idlHeader = mustGetMember(json, 'idlHeader', [unicode], 'database')
- return DbSchema(name, comment, tables, idlPrefix, idlHeader)
-
- def toJson(self):
- d = {"name": self.name,
- "tables": {}}
- for name, table in self.tables.iteritems():
- d["tables"][name] = table.toJson()
- if self.comment != None:
- d["comment"] = self.comment
- return d
-
-class TableSchema:
- def __init__(self, comment, columns):
- self.comment = comment
- self.columns = columns