We are not aware of any problems in Aware IM AS LONG AS THE BSV is CONSISTENT with the database structure.
You have to understand the process that Aware IM goes through when it publishes a BSV. This is what happens:
- There is always an old version of the BSV which is "CURRENT" at the moment. The important thing is the database structure currently corresponds to this version of the BSV.
- You are now publishing a new version of the BSV and Aware IM is supposed to make the corresponding changes to the database structure to reflect the changes. This is quite a complicated process.
- Aware IM goes through every attribute of every object to check whether the attribute has been removed, added, renamed or modified. When doing this it compares the structure of the old BSV (current in the database) and the new BSV. Then it makes the corresponding changes to the database.
- Aware IM does not rely on attributes names when determining what happened to the attribute (because names can be changed by the user). Instead every attribute is assigned a unique id and Aware IM uses these id's to determine what happened to the attribute.
- So for a particular id in the old version Aware IM looks for the same id in the new one. If it doesn't find it thinks that the attribute has been removed and it tries to delete the corresponding column in the database. However, if something is inconsistent it may delete the column unnecessarily.
One example: you delete an attribute and save the object. An attribute with this id is now gone. You create an attribute again WITH THE SAME NAME. However, it has a DIFFERENT internal id now. You think that it's the same attribute, though, and don't expect Aware IM to make any changes. But it does and you have problems.
This is especially important if you are working with a BSV on a different machine compared to where your old BSV version is (the one that is published now). Normally Aware IM would try to compare the old and the new version and warn you even before the new version is published. But if the old version is different (which it most likely is, if you are working on a different machine) then you won't get any meaningful warnings.
Therefore, you need to be careful when you are making changes to the database structure (adding, deleting and renaming attributes) and there is a current version in the database that you want to remain compatible with. ESPECIALLY if you are making changes to the BSV on a different machine compare to where the current version is.
That's why you always need to backup and that's why you need to be careful.
If you are in the middle of the development and you don't care about your current data, then you can always put the version under testing with no initial data or create a new business space and start from blank data.
If you encounter a problem like this when publishing you should ALWAYS START by restoring from a backup as you can no longer trust the current database structure. After you restore then look at the column that caused the problem, go to the original BSV and see what happened to that column in the new one.