Version Migration allows to move your installation to the current distribution version to take advantage of new features, improved performance and stability (refer to other postings for Component/Application migration and Data migration).
The version migration is stable in production since 2003 but has the disadvantage that it is the barer of bad news. The migration does not create issues - it discovers and identifies issues in your current system. In this blog, I will discuss typical problems and your options of solving them.
One important principal: Errors will not go away - they will compound. So fix them ASAP. Procastination will ensure that you'll spend significantly more time fixing them later and might even destabilize the system.
When evaluating the situation, view all of the errors displayed. You very often find that ther are just a few causes creating potentially a long list of errors. Example: if some record fails to be inserted due to a naining constraint, you may also get many other insert errors failing due to parent contstraints.
Column Name Conflicts
Cause: you added a column in a Dictionary table and get something like the following error:
ORA-00001: unique constraint (COMPIEREPRO.AD_COLUMN_NAME) violated
INSERT INTO AD_Column (AD_CLIENT_ID....)
VALUES (0,15851,550,0,19,333,236,'C_Campaign_ID','R',TO_DATE('2006-07-07 17:19:08','YYYY-MM-DD HH24:MI:SS'),0,'Marketing Campaign','D',10,..)
In this case an entity with the same name was created by the user. So, identify that entity and in general either rename it - or delete it in the application. Here, a custom column already exists and you probably do not want to loose the existing data. So here, the solution would be to delete the column in the dictionary - this does not delete the column and information in the database. The migration process will then add the column again, but not change the database as the column already exists.
Note that Compiere column names are case sensitive whereas the column name in the database may not be case sensitive (default in Oracle, other databases have case sensitive column names by default). In this case, you get a slightly different error - adding the duplicate column in Compiere succeeds, but creating it in the database fails (
ORA-01430: column being added already exists in table). The sulution is the same.