There are not many authoritative online materials that provide the specifics of migration (in addition to procedures aimed at simply ensuring the structural integrity of the database on a new / updated host). For this reason, and since this migration seems to be planned / planned for you, I would take the opportunity to rebuild all indexes, including cluster indexes .
For some, this may seem βredundant,β but what is even better for re-balancing and repackaging indexes / tables, providing a new fill factor that is commensurate with the expected use of CRUD, and generally approving the health database in the new host.
In practical terms, I would ...
ALTER DATABASE <database_name> SET COMPATIBILITY_LEVEL = 90; DBCC CHECKDB(<database_name>) -- WITH NO_INFOMSGS (I'd take the messages, I'm curious by nature ;-)
As you suggest, but then I would rebuild all the indexes in all / most tables even (perhaps in particular ...) on very large tables. Of course, you need to evaluate the time and relative risk associated with such an operation, but in most cases, even with databases of 100+ million rows, the total time invoice is of the order of several hours, since it can delay the restructuring of future indexes. As for the risk factor, you seem to have a backup ...
Which goes without saying ... When the base table has a clustered index, and if you want to rebuild it before resetting all the other indexes so as not to spend a lot of time updating the non-clustered index (without having to seriously restore them), then, of course, recreate these nonclustered indexes.
Depending on the number of tables and indexes, it may be advantageous to write several small stored procedures to automate index dropping (and recreate, although it may also be important to individually analyze fill factors, recompute, and another parameter).