Great question - I'm currently working on my final project and this was an issue I initially struggled with and have worked through. I'm really glad I did because I have learnt a substantial amount.
I have been using Heroku to deploy a Flask/Python web application for my final project (including MySQL). I have found plenty of documentation online (searching terms flask/python/heroku provide some good example setups).
There is a free tier which provides core functionality (thus far it has been enough for developing my final project). I imagine if you are serious about taking an application to the next level and maybe monetizing it you would need the added functionality and security you can build-in with the higher tiers.
Heroku had great documentation and a simple setup when it came to configuring my app (for example: the MySQL database: https://devcenter.heroku.com/articles/cleardb#the-complete-tutorial). The process I followed:
- Start with a basic setup e.g. "Hello, world" to print via
python/flask on the public internet.
- Connect to your database (configure this using a Host, Port, Username and Password which you should get from the database provider) to your IDE (it is common for IDE's allow you to test the connection after configuration).
- Carry out some simple table creation/data insertion operations.
Beyond this, your CS50 knowledge should prepare you to develop something much more advanced from this point.
As for your data migration, I am sure if you have the database configuration details (those I mentioned above) you should be fine to connect to that database instance, alternatively, select a Heroku add-on database and migrate your data directly.
All the best.