Is there any other way to upgrade compiere without buying the Compiere Version Migration Contract (including database migration)?
You can use a good change management tool to compare reference and production database to get a change script, then you must manually only correct the records which shouldn't be overritten, write some migration for those not recognised by the change management and there you are. B
BTW: You must do this every time. Believe me it's much cheaper to buy a one time migration or better a support contract.
I think to get these scripts working for a 1 time operation you would need 2-3 days if you are good in SQL and have the best change management tools.
If you wanna create a fail safe reusable script we are talking about weeks or month...
But for sure it can be done...
This is the way I approached Great Plains migrations, maybe it will work for you:
1. Rename the live database (backup/etc)
2. Recreate the database using the new version of Compiere (structures will now be 100% okay).
3. Now it is an excercise of copying data from the old to the new version (I have some source code writen in VB .dotnet if you're interested).
(3) is more complex than it seems. However you might find the whole task is less daunting (depending on the structural changes) than they claim and you're bound to learn a whole lot doing it.
Of course buying the support script is a whole lot less effort!
for the upgrade you can use the cheap 'black box magic art' of the migration tool or...
... use the more 'open box' and more expensive tools like the Embarcadero Technologies suite, any other dbdiff tools for Oracle or the open source Tora.