I have a SharePoint 2013 Multi Tenant environment. I have a Content Type Hub, a Root Site and a Document Center in addition to a Tenant Admin site in every tenant. I have a Custom Visual Studio solution for adding Content Types and Site Columns to my Content Type Hub. The Content Types and Site Columns are created declaratively in Visua Studio. These Content Types are pushed to the Root Site (and all the other subscribing sites within the tenant as well). The Root Site has the required lists, which use these Content Types. These lists have data now.
Now I have to make changes to the Content Types in the Hub by changing an existing column (say changing a column type from Single Line of Text to Multiline). I went back to my solution in Visual Studio and made the change to the Site Column declaratively. Now, I retracted and redeployed the solution and on feature activation, I published the Content Type, the subscribing site got this change and so did the list. Since it was a change from Single Line of Text to Multiline, there was also no data loss.
I also have to add a column now to the content type. After I did this in my Visual Studio project, I retracted and redeployed it and published the content type through the feature activation. I could see that the Root Site also got this change in it's Site Content Types list and I could see the newly added column. But, I was quite amazed to observe that the existing Content Type in the list is not showing the newly added column. But strangely, this works if I am adding a column to the content type through UI and then I am publishing it. I am not sure, what am I doing wrong here. Is there a way to achieve it, through code? I am sure there will be, since it is happening through UI. Please help.
PS: The site is live and hence I can't take any risk.