DHIS version 2.31 is released

(Bernard Sadaka) #23

I am trying as we speak to upgrade from 2.30 to 2.31. the upgrade is not working because my psql version is on 11.1 :frowning:
according to my understanding, flywaydb does not support 11.1 yet :frowning:

@jomutsani attached my latest catalina logDHIS2 upgrade from 230 to 2310 upgrade with psql11.1_.txt (24.9 KB)

(Sangay Tenzin) #24

Dear All,
Glad to hear that the developer and team have released new version. Big congratulation!!!

Regret to mention here that we could not test/experience the new version, we are still lagging behind. Could not upgrade from 2.26 due to limited technical expertise. We love to have some body to support and guide us. Really welcome your kind support.

Thank you

(Tshidiso Moroma) #25


Is it possible for one to enroll a client from a program captured at District level into a program at facility level?

Please assist. I am very excited to use DHIS2. Not yet upgraded from 2.29 to 2.31. But I have a 2.31 instance and I am exploring it.

So far I have liked the presentation module.

(Ameen Mohamed) #26

@SDKAAA This is not because of postgres version 11.1. Your have a function in your db named “generate_uid()” which was created by a non-dhis user. The function is not owned by dhis user.
For fixing the issue, drop that function from the database and start the 2.31 application again. :slight_smile: Let me know if you face any more issues. (Especially related to flyway)

Dhis 2.31 war tries to “create or replace” the function , it fails since the function is not owned by dhis db user. This function may be used by most future versions of dhis. Be aware that this function should not be dropped after migrating to 2.31, since future versions (2.32 onwards) migrations will expect this function to remain in the database.

(Bernard Sadaka) #27

Thank you @Ameen !!! it worked like a charm!!!
I have faced before problems with tables ownership, but i guess this time i missed the function ownership :rofl:
I guess also the flywaydb compatibility with 11.1 was not a big issue after all!!
We will be testing 2.31 for now and if the migration works well, we will be redoing it for the production server.
for the record: we are migrating from 2.28 to 2.29 to 2.30 and now to 2.31, do for the end user it will be 2.28 to 2.31 directly.
Thanks all for the support.

(Ameen Mohamed) #28

@SDKAAA Thats great news! Yes you are right about flyway compatibility with 11.1 . It is just that
the specific flyway version that we are using is not officially supported/tested (but will work) for 11.1. But I will keep an eye on it and also try to bump up flyway library version for better support.

Keep posting your updates. :slight_smile:

(Bernard Sadaka) #29

@Sangay_Tenzin you can not upgrade directly from 2.26 to 2.31; you have to do it one at a time.
in our case we upgraded from 2.28 to 2.29 on test server and tested all our usecases (program by program, data entry by data entry)
and then from 2.29 to 2.30 redid the same
and now we are doing from 2.30 to 2.31 and we will do the same again.
Once all of the above is working on the test server, we will need to redo it on the production server during a period of time that does not stop our staff from working (probably during the weekend)
the most important is to have backup of your data before any upgrade attempt, because if things go bad, you can always go back to a previous version of the database.
Tip: always do the upgrades while watching the catalina output, this will give you an idea about the problems that might be happening.

(Ameen Mohamed) #30

@SDKAAA and @Sangay_Tenzin Just an additional info, starting from version 2.30 you will be able to upgrade directly to any future versions. For example if your production is in 2.30 (or 2.31) now, and if you decide to eventually upgrade to 2.35, you can simply deploy the 2.35 war directly onto the same db, and the application (with the help of flyway) will automatically upgrade the db into a 2.35 compliant one. Note that once upgraded, you will not be able to go back to a previous version using the upgraded db. (Deploying a 2.31 war onto a 2.35 upgraded db will not work.) :slight_smile:

(Bernard Sadaka) #31

thx @Ameen … that’s amazing!!! in that case the upgrading scripts will be easier and easier!!!
any plans on making the upgrade available from the admin section of DHIS2 instead of from command line?
That would be the natural flow if i was developing it :stuck_out_tongue:

(Ameen Mohamed) #32

@SDKAAA What do you mean by making the upgrade available form the admin section? Just to clarify, from 2.31 onwards, there will not be anymore upgrade scripts that will have to be manually executed. All upgrade scripts will be contained within the dhis2 war and will be taken care of by dhis2. No manual intervention required for upgrades. Its just as simple as deploying the new war file.

(Sangay Tenzin) #33

@ SDKAAA Thank you so much for enlightening. As you suggested, we will try to do it.

(Bernard Sadaka) #34

Thank you @Ameen, that part i understood.
What i mean is, since the upgrade no longer needs manual intervention, will there be in the future plans to allow an update of the war file from the DHIS2 admin interface instead of needing to do it from the command line?
e.g. you go to the DHIS2 System settings where you have a section for upgrades under which you can upgrade the website on the fly without needing to open the command line. While the above is being done, the site will be under maintenance in order to avoid any problems of data entry.
I have suggested the maintenance part in JIRA but not the on-the-fly upgrade.

(Philip Larsen Donnelly) #35


There are no plans (at least in the medium-term) to provide such an upgrade function for the core war. As you are aware, due to the potentially destructive nature of a war upgrade, it should only be performed in a production environment as part of a well-managed process, which includes backing up the DB etc, informing users, etc. As DHIS 2 instances are highly configurable, it quickly becomes very complex to manage upgrade processes in a generic way.
If you purely mean upgrading the war file on the fly, you have options such as tomcat manager, for war file deployments through a web interface.

Apps, on the other hand, are a little different. From 2.32 onwards we plan to release apps independently of the core. This means that app enhancements and features can be released more frequently and you can choose when to take them. The apps will be deployed via an enhanced app store, and you will be able to upgrade to the latest compatible version of an app “on the fly” via App Management. You should also be able to “downgrade” apps too; for example, if some features in the new version are problematic.

So you will be able to “upgrade” within the (API/DB compatibility) constraints of the current core version.
I know this is not exactly what you are asking, but we hope that it makes it easier for users/admins to take advantage of new features.

(Bernard Sadaka) #36

thx @phil very much appreciated

(Bernard Sadaka) #37

I just noticed that there’s 2 different builds of 2.31:
one was built 10 hours ago and another 2.31.0 13 days ago.
On the download page i can only download the one dating from 13 days ago.
Is it ok if i download and use the 2.31 instead of the 2.31.0 from https://ci.dhis2.org/job/dhis2-2.31/lastSuccessfulBuild/artifact/dhis-2/dhis-web/dhis-web-portal/target/dhis.war ?
Please advise.

(Ameen Mohamed) #38

2.31.0 is the launch version of 2.31. We would be having patch releases (2.31.1 , 2.31.2… and so on) from now onwards. The 2.31 build you see is the latest development build of 2.31 (which may not be stable since its still under development). You can definitely download and use it , but be aware that they are still under development. @phil Perhaps you can add more details.

(Bernard Sadaka) #39

Thank you @Ameen,
the main reason i’m looking into that is for example the JIRA issue #5471 ; apparently it was fixed but now i understood it was probably not pushed to the 2.31.0 war because i’m using the 2.31.0 war file and not the latest 2.31.
previously to 2.31 i use to pull the latest war file from the same version every 2-3 weeks or right after a fix was pushed.
I think i would need to do that in this case, right? (under the caveat that it is under development still)
what do you think?

(Ameen Mohamed) #40

@SDKAAA Yes, the issue you mentioned has a fix version of “2.31.1” which is still not released. You will definitely get the fix when you download the latest 2.31 development war (which is what you were doing prior to 2.31 anyway). Since you were anyway using development builds before 2.31, I think its okay. You know the caveat already ( which was also true for previous versions) . In an ideal world, I recommend waiting for the official patch release of 2.31.1 . :slight_smile:

(Norberto Victorino Banze) #41

Hi @Ameen, we are trying to upgrade from version 2.30 to 2.31 but we are having the error attached. Can you please help us with this error.mz-231-error.txt (24.2 KB)


(Philip Larsen Donnelly) #42

@SDKAAA As @Ameen points out, we want to discourage pushing development builds into production, and focus additional quality assurance effort on the production builds. But, of course, if you understand the risks you can take the latest development build.

Hint: you already noticed the new structure on AWS. You can get the latest development build be removing the release folder from the path (i.e. /2.31/dhis.war instead of /2.31/2.31.0/dhis.war)! This is deliberately not linked from our downloads site; but we may eventually add a download link with the appropriate caveats.