Ejemplo n.º 1
0
def main():
    connectionString = 'driver=' + DRIVER + ';server=' + SERVER_ADDRESS + ';database=' + DATABASE_NAME + ';uid=' + UID + ';pwd=' + PASSWORD
    cnxn = pyodbc.connect(connectionString)
    cursor = cnxn.cursor()
    mongoClient = MongoClient(MONGO_DATABASE_ADDRESS)
    db = mongoClient[DATABASE_NAME]
    
    columnData = getColumnData(cursor)
    tableNames = set(row.TABLE_NAME for row in columnData)
    pKeys = getPrimaryKeys(cursor)
    fKeys = getForeignKeys(cursor)
    graph = buildDependencyGraph(tableNames, columnData, pKeys, fKeys)
    
    if len(db.collection_names()) < 1:
        print "Exporting data..."        
        tablesJSON = {}
        for table in graph: 
            tableDataExtractor = TableDataExtractor()
            result = tableDataExtractor.extractData(cursor, table)
            tablesJSON[table.tableName] = result

        for tableName in tablesJSON:
            for entry in tablesJSON[tableName]:
                print "Inserting table " + tableName + " into Mongo..."
                db[tableName].insert(entry)
                print "Done."
    else:
        print "Checking for changes..."
        delta(graph, cursor, db)
    print "Operation Complete"