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"