コード例 #1
0
ファイル: joins.py プロジェクト: benanhalt/SchemaTools
            col, key = e
            field = 'doc["%s"]' % col
            view.append('    %s && emit(["%s" + %s, 1], null);' % \
                            (field, key, field))

        for col in t.rh_emits:
            key = "%s.%s" % (t.name, col)
            field = 'doc["%s"]' % col
            view.append('    %s && emit(["%s" + %s, 0], null);' % \
                            (field, key, field))

        view.append('    return;')
        view.append('  }')
    view.append('}')
    return "\n".join(view)

if __name__ == '__main__':
    import sys
    import json
    from jsonschema import json2schema

    schema = json2schema(json.load(sys.stdin))
    view = compute_view(schema)
    print json.dumps({"language":"javascript",
                      "views":
                          {"joins":
                               {"map": view,
                                "reduce": "_count"}
                           }
                      })
コード例 #2
0
from jsonschema import json2schema


def list_relationships(schema):
    out = []
    for table in schema.tables.values():
        if not table.include: continue
        rels = ["n %s.%s -> %s.%s" % \
                    (table.name, r.local_column,
                     r.table, r.remote_column)
                for r in table.relationships.values()
                if schema.tables[r.table].include]
        out.extend(rels)
    return "\n".join(out)


if __name__ == '__main__':
    import sys
    import json
    schema = json2schema(json.load(sys.stdin))
    print list_relationships(schema)
コード例 #3
0
ファイル: importmysql.py プロジェクト: benanhalt/SchemaTools
def load_value(doc, col, row):
    if col.name in RESERVED_COLUMN_NAMES: raise ValueError()
    value = row[col.name]
    if value is not None:
        doc[col.name] = value

if __name__ == "__main__":
    import getopt
    import sys
    import json
    from jsonschema import json2schema

    optlist, args = getopt.getopt(sys.argv[1:], 'u:p:')
    options  = dict(optlist)
    username = options["-u"]
    password = options["-p"]
    mysqldbname = args[0]
    couchdbname = args[1]
    schemafile = args[2]

    schema = json2schema(json.load(open(schemafile)))

    mysql = MySQLdb.connect(user=username, passwd=password,
                            db=mysqldbname, charset = "utf8",
                            use_unicode = True, conv=FIELD_CONVERSIONS)

    couch = couchdb.Server()[couchdbname]

    convert(mysql, couch, schema)