Changes in datatype/domain in the logical side not being reflected to the physical side. Why?
It is because the inheritance between the logical and the physical side may not be intact. That is required for the changes in logical side to reflect in the physical side. Specific to datatypes, here is the behavior in general:
In a Logical / Physical model (for any database)
1. A datatype set at the logical side of the Domain level flows to the Attribute (logical side)
2. If the physical side of the Domain is not touched the physical side of Domain should take the same datatype from its logical side. However, based on the target database, the physical datatype may sometimes be different. It is because the logical datatype may not be compatible with that database. In this case the Column (physical side) takes its datatype from the physical side of the Domain.
3. If the datatype is somehow changed at the Attribute (logical level), and it is no longer same as the Domain it is attached with, the Column (physical side) will then take the datatype from the Attribute and not from the physical side of the Domain.
4. If the datatype is changed at the Column level (physical side), then it is independent and will not be impacted by any change made at either Attribute (logical side) or at the Domain level. It is because the inheritance is broken.
So, if a datatype change made at the logical side is not reflected in the physical side, it is most likely because the inheritance between the logical and the physical side is broken. To make it work, it will need to be reset. You can do it as follows:
1. Switch to the physical side of the model (IT IS VERY IMPORTANT THAT THIS IS DONE FROM THE PHYSICAL SIDE).
2. Under Actions, select 'Model Naming Options' and go to Name Mapping tab and click on 'Reset Names' as shown below:
3. Therein, deselect everything and select just the following two check boxes as follows:
Click OK and it will reset the inheritance of the Physical Datatype to match their Logical Datatypes. If the Logical Datatypes have their inheritance from their respective Domains, it will also set the inheritance to the Domains. Once this inheritance is established, making any change in the logical side will also be reflected in the physical side as well.