Pages

Monday, November 24, 2014

Updating iDempiere 2.0 to 2.1

First of, all of the solutions are here
http://www.globalqss.com/wiki/index.php/IDempiere/Importing_DB_Seed_Manually

Except for some bumps I've encountered in applying the database migration script
1) I'm using windows so running
sh syncApplied_2.1.sh 
means I have to download CYGwin, there are other tools but this is what I used.

2) After successfully running sync applied, I feel like I need a complete version of migration scripts, because I don't want a problem. So I have to double check the last check point I had when I ran my first migration script and that was i2.0z (found under idempiere\migration\i2.0z). So I have to update my trunk to latest 2.1 branch release by using
hg pull && hg update release-2.1 
inside my local idempiere home folder.

3) After having all the scripts needed, apparently I realized that I don't need step 1 if I have updated my trunk. So I've created a bat that will execute all the sql files in i2.0z folder, since there are lots of sql file.

4) But, I've encountered this generate_uuid() function missing or not existing, so I have to search all over the net to find the solution...

first I found this: https://idempiere.atlassian.net/browse/IDEMPIERE-274
the above link didn't work for me, and I'm not sure why so I tried this

second solution: psql -d idempiere -U adempiere -c 'CREATE EXTENSION "uuid-ossp"'
from: http://www.globalqss.com/wiki/index.php/IDempiere/Importing_DB_Seed_Manually

But again it didn't work because I'm having problem with those freaking quotes!
So my third solution is: http://blog.hardmax.com.pe/2013/11/04/postgres-error-function-uuid_generate_v4-does-not-exist-despues-de-restaurar-idempiere-solucionado/

And it almost did not work in step 3 when I tried using this (instead of what is in the website)
idempiere=# SELECT adempiere.generate_uuid();
But the problem with that is, I have to put adempiere schema in all sql files in migration folder, and I cannot do that. That's crazy!

5) I found a site that modifies postgresql.conf here http://www.mkyong.com/database/postgresql-how-to-change-default-schema/

But when I restarted my server, I had problems running SELECT adempiere.generate_uuid(); again. So I had to close the cmd and recreate the extension. And viola! It WORKS!!! :D

So, I hope this documentation will help other struggling implementer who are updating their idempiere system to 2.1.