Trying to blame migration for the problem is like trying to blame floods on the fact that water seeks its level: you're describing the effect, not the cause.

The cause is that there are too damned many of us, to paraphrase Colin Fletcher. Migration is simply the effect of too many people who spread out to find food, space or other scarce commodities. To grossly oversimplify, reduce the number of people and you reduce the pressure to spread them out from population concentrations. Keep increasing the number of people, and the only outcome is overpopulation everywhere.

Immigration is only a problem for the nation-state system we've organized ourselves into. Regional solutions can't solve a global problem, which is what we've got.