Postgres really doesn't have the same issue in my experience. Migrations are fast, tables don't get blocked. I have found a trick for schema changes to mysql databases though. Granted this wasn't in Rails, but I assume the issue is the same.
I found that you can do this: SET foreign_key_checks = 0;
Do what you need to do, then turn them back on with SET foreign_key_checks = 1;
There is risk involved in terms of data integrity (obviously, you're turning off foreign key checks), so be absolutely sure you know what you're doing (and please, research elsewhere as well) before you do this.
I'm guessing there are probably more creative solutions as well involving greater normal forms, such as just making a new table for additional columns instead of adding them to an existing one. This way the existing tables shouldn't get blocked at all (I believe).