People here use nationality, ethnicity and heritage interchangeably all the time. They should not.
Nationality is citizenship, and you can change it quickly; move to, for instance, the USA, stay long enough to meet the residency requirement, pass a test, then put on your best suit, walk into a courtroom as a foreign citizen at 11 am, take the oath and walk out an American citizen at noon.
Ethnicity is based on the food you eat, language you speak at home, religion you practice, holidays you celebrate, manners and customs, and so on. It can change, gradually, over time. One of my great grandfathers was an ethnic German who came to the USA. He spoke German at home, ate a lot of sauerkraut, pork and potatoes, and was a staunch Lutheran. His descendants are ethnic Americans. We eat American food - burritos, pizza, chow mien, broiled swordfish with mango-lime salsa - and speak English at home. Some of us are Lutheran, some are not.
Ancestry or heritage is who your ancestors were. That can't change, although you can discover they were not the people you though they were, if, for instance, your grandma makes a confession on her death bed that explains why her third child was a redhead.