Immaginate di avere il vostro bel Azure SQL Database e con una serie di indici Azure Search collegati ad altrettanti Datasource che fanno riferimento a tabelle fisiche (o viste) del db (a chi non sapesse cosa sono i servizi Azure Search consiglio vivamente questa lettura).
Il tutto in produzione con ottimi risultati in termini di performance ed usabilità.
Ad un certo punto il CTO decide che il database debba essere spostato sotto altro account Azure con conseguente cambiamento della ConnectionString. Poco male, penso tra me e me, basta cambiare la connectionstring nei relativi datasource et voilà … il gioco è fatto.
Niente affatto! Se cambiate la connectionstring al DataSource, l’ Indexer (ovvero la risorsa deputata a collegare il DataSource ai relativi Indici Azure Search) deve essere resettato altrimenti continuerà a tracciare le modifiche sulla vecchia tabella – del vecchio database.
L’operazione di Reset Indexer va eseguita via API REST. Maggiori informazioni a questo link.
Per fare questo ho usato FIDDLER (ma in rete trovate tanti altri software simili)
Prestate attenzione alla api-key: deve essere una admin-key. Lo status code 204 indica che l’operazione è andata a buon fine.
In alternativa si può sfruttare il .NET SDK con il metodo ResetAsync