This happened to me.
What I noticed is that there were processes running that simply wouldn't let me execute DROP TABLE or ALTER TABLE on the PK or FK.
First I did:
SELECT * FROM pg_stat_activity
I didn't filter by just the active ones because the ones that were blocking were in "idle" status
And then I killed those processes:
SELECT pg_cancel_backend(<pid of the process>)
I killed all the processes that were running for that database. I made sure that this wouldn't affect my application.