Compiere provides three types of Migration
- Version Migration - Moving your system from one version/release to another
- Component Migration - Installing and upgrading your Component/Customization
- Data Migration - Moving/updating selections of data from one system to another
In contrast to other ERP/CRM systems, Compiere was designed to be extended/customized and with the principle that there is only one maintained version - the latest. In the beginning people were a bit uncomfortable with the idea that there is no support for historical versions. When they experienced the benefits of the Version Migration (available and stable since 2001), this concern was no longer an issue. To be able to migrate to the current version new concepts were introduced to enable this. The main element is the clear distinction who owns what via the Entity Type - and that in the migration does not touch customizations nor customer data.
The Version Migration is basically a "diff" program which compares the current state of the target system with the to be achieved state of the source system. The migration is now in it's third generation and also maintains database index, constraints and views. The runtime is more dependent on the number of differences between the versions rather than the size of the database.
The main advantage of the migration is that it uncovers potential issues (it does NOT create them). The most useful output is the error log. In most cases, you can start/continue production, even if you have a significant number of issues. Let's look into causes and options: