Data Migration

Complete

OpenVPMS doesn't directly support data migration from other veterinary practice systems.

It does however provide a plugin for Pentaho Data Integration (PDI, aka Kettle) that can be used to get data into OpenVPMS.

At this stage, only PDI 3.2 is supported. This can be obtained from here.

Extract this zip file to a directory. This will be referred to as <PDI_HOME>.

To install the OpenVPMSLoader plugin:

  1. Remove any existing OpenVPMSLoader plugin from <PDI_HOME>/plugin/steps
  2. Extract <OPENVPMS_HOME>/import/plugin/OpenVPMSLoader.zip to     <PDI_HOME>/plugins/steps/OpenVPMSLoader
  3. Remove <PDI_HOME>/libext/spring/spring-*.jar
  4. Copy <PDI_HOME>/plugins/steps/OpenVPMSLoader/spring-core-3.2.14.RELEASE.jar to <PDI_HOME>/libext/spring
  5. Update the spoon script to include:
           -Djava.util.Arrays.useLegacyMergeSort=true
    This is required when using Java 7 or higher, to work around a bug in PDI 3.2

For Windows, modify spoon.bat and change:

set OPT=-Xmx256m...

to:

set OPT=-Xmx256m... -Djava.util.Arrays.useLegacyMergeSort=true

For Unix, modify spoon.bat and change:

OPT="-Xmx256m...."

to:

OPT="-Xmx256m.... -Djava.util.Arrays.useLegacyMergeSort=true"

 

See also Implementors Forum|Data Migration

Java Requirements

PDI 3.2 needs to use the 32-bit Java JVM.  If you have previously installed the 64-bit version for Tomcat to use then you will also need to install the 32-bit version for PDI.

To migrate data from Microsoft Access Databases (.mdb), Java 7 is required, as support for ODBC drivers was dropped in Java 8.

MySQL connector

PDI includes mysql-connector-java-3.1.14-bin.jar in the <PDI_HOME>/libext/JDBC/ directory. Whilst this is much older than the 5.1 version recommended for OpenVPMS, it should be retained to avoid a bug in the later version of the MySQL connector. The bug is activated by the inclusion of the useCursorFetch in Database Connection - Options, and prevents loading of archetype descriptor assertions. These are used to define lookups and constraints in archetypes, and thus no longer work.