1. Opportunities - People migrate to places where there are better opportunities.
2. Security - Law and order situation is a key factor
3. Weather - Yes, believe it or not weather does make a difference. Some people don't wanna migrate to places where weather is too harsh for their liking whether cold or hot. Vacations are different cases.
4. Distance - Inter country migration has a lot to do with distance from people's native hometowns or villages. People migrate to places to work which are at a distance from where they can easily reach their hometown in case of some emergency or some occasion or even weekend. This was atleast the case in past where travelling was difficult due to transportation modes which hasn't really improved substantially in recent times either. Poor management of railway is big factor here.
5. Hype/Stereotype - People relocate to places which are already known for multi ethnic vibrant cultures. People are reluctant to move to places where they are the only outsiders.
6. Relatives - One factor is having relatives in other cities who can help you settle down in your new place. This factor does matter to rural people migrating and settling in new places. Few people from a community move to a new place and it becomes sort of like advertisement to others to follow. Nobody moves, nobody follows.
7. Class culture - People from Urban areas usually don't relocate to places which they deem as bit rural.