Azure DevOps doesn't use the same database system as TFS/Azure DevOps Server so the database migration tools aren't useful. As discussed here there are 3 approaches to migration.
- Manual - Versions don't matter because you're going to manually do all the work. Honestly I cannot think of a case where this makes sense.
- Data Migration Tool - This is the "preferred" approach as it'll migrate your data but it only works with a single DevOps collection and you must be running within the latest 2 versions of DevOps, TFS is not supported. So you'd need to update your SQL database server (because it has requirements for newer versions) + TFS to Azure DevOps Server and then you could migrate. If you have a single collection then this might be doable but upgrading all that software (+ licensing) just to move to DevOps seems overkill.
- API - This is the harder approach but gives you absolute control over what to migrate and how. Furthermore it doesn't matter what version of TFS you're running because you're using APIs to migrate data anyway. This has the least setup cost from your existing system but migrating data using the API is very time consuming to configure and can be error prone. Fortunately there are a lot of resources online where people have shared scripts and code to do it. Just google for migrating to Azure DevOps.
This is the approach we took when we migrated our Team Project-based TFS instance to Azure DevOps 7 years ago. Of course things have changed and you may be using Git in your TFS which is easier to migrate. I had written a series of blog articles about it but that site is no longer available. Nevertheless here is the code that I used to do the migration. Feel free to copy and adapt it to your needs. It migrates: all active work items and relationships, all code, all users, all build definitions, all queries. It is configurable so you can select to filter out some things.