Converting to MariaDB or PostgreSQL

Hi All,

I have to miss the dev call today, but I wanted to share my main thought about the “converting to mariadb or postgresql” topic:

I think the most valuable first thing we can do in this area is to have CI setups which test doing a from-scratch install of the reference application, against other DBs (mariadb and postgresql being the obvious ones).



Thanks for the thoughts.

Just as a FYI for you, and for everyone interested in this topic, there are notes from this discussion here.

Specifically, we will be committing as a community to the following:

  • Get MariaDB support on the road map
  • Enumerate which of our distributed modules (those in the 2.2 refap are not hibernate and/or liquibase
  • Set up CI builds for MariaDB, PostgreSQL, and SQLServer, Oracle We assume these will not be green lights
  • Create tickets to address problems that occur
  • Schedule sprint(s) to address tickets

I’ll let Burke comment on the strategic directions implied in these actions. :smile:

I just did a quick install with 1.11.1 platform and it was successful!

  • OpenMRS Platform 1.11.1 Build b29252 war
  • Mariadb 10.0 from mariadb repo
  • OpenJDK 7
  • Tomcat7
  • Ubuntu 14.04 x64

I ran through the install wizard (in advanced mode) and it successfully completed. So this looks like a good first candidate to get deployed into CI?

1 Like

@ryan: did you try the data import scripts as well?

Burke reminded me in the hallway what issues I might have dealt with, and the install process crashed at the point of loading demo data. Burke thought that those scripts might be MySQL specific.

1 Like

No, I did not. I remember trying MariaDB when it first came out, and installing openmrs it got stuck on a liquibase update, so it seems that is not an issue any more. I did retry installing with demo data and it looks like it completed successfully, but showed a blank white screen when trying to load(log below). Restarting tomcat allowed me to login, but only find John D Patient in a search.

INFO - HibernateContextDAO.updateSearchIndex(491) |2015-04-16 16:50:17,515| Finished updating the search index
INFO - LoggingAdvice.invoke(115) |2015-04-16 16:50:17,542| In method SchedulerService.saveToMemento. Arguments:
INFO - LoggingAdvice.invoke(155) |2015-04-16 16:50:17,547| Exiting method saveToMemento
INFO - AbstractSessionFactoryBean.destroy(223) |2015-04-16 16:50:17,592| Closing Hibernate SessionFactory
ERROR - OpenmrsClassLoader.destroyInstance(360) |2015-04-16 16:50:17,651| this classloader hashcode: 297042018
INFO - ServiceContext.startRefreshingContext(897) |2015-04-16 16:50:17,652| Refreshing Context
INFO - LocalSessionFactoryBean.buildSessionFactory(780) |2015-04-16 16:50:19,383| Building new Hibernate SessionFactory
INFO - ServiceContext.doneRefreshingContext(908) |2015-04-16 16:50:21,219| Done refreshing Context
WARN - OpenmrsUtil.getRuntimePropertiesFilePathName(2669) |2015-04-16 16:50:22,964| Unable to find a runtime properties file at /var/lib/tomcat7/
INFO - HibernateUserDAO.changePassword(311) |2015-04-16 16:50:23,031| updating password for
WARN - DispatcherServlet.noHandlerFound(1108) |2015-04-16 16:50:23,723| No mapping found for HTTP request with URI [/openmrs/index.htm] in DispatcherServlet with name 'openmrs'
WARN - DispatcherServlet.noHandlerFound(1108) |2015-04-16 16:50:23,730| No mapping found for HTTP request with URI [/openmrs/missing.htm] in DispatcherServlet with name 'openmrs