I'm experiencing this problem as well. I aborted an attempted migration twice today because I thought it had stalled.
I'm now altering the schema directly via MySQL (to eliminate the question of whether something was silently failing in the Django migration machinery).
I am adding a single boolean column to a table with 100,000 rows, and it has been running for 25 minutes now. Locally this migration (not the same database, but the same number of rows) takes about two seconds.
I'm upset about this because it has now turned into a significant downtime event for my site.
Why is MySQL so slow on PythonAnywhere? I've noticed it before but never at this frankly pathological level.