Data Migration Tools Project
Data Migration Tools Project Summary
The goal of this project is to propose a framework for data migration (importing legacy data into Mifos) that includes a well defined data import format and to implement the import of one business object type (the Mifos Center type) as a proof of concept. This project is a first step towards the Desired Feature item Improved Tools For Data Migration.
Project Artifacts
Design decision documents _ (Choice of XML for import format _ (Choice of RELAX NG and W3C XML Schema support and use of JAXB * (XML schema design notes
Background information documents * Mifos specialist discussion of Grameen Koota data migration effort
Final Project Status - 10 April 2007
Work on this project (implementing a proof of concept) has been completed. A project proposal for a full implementation has been submitted.
Work completed
Week ending 13 April 2007
prepared project plan for a complete Mifos Data Exchange XML import implementation
wrote a sketch of a data migration framework using data import-- the Data Migration Roadmap
performed a quick survey of open source ETL tools
final checkin of project code
Week ending 6 April 2007
completed proof of concept import functionality for Mifos Center objects
worked on project planning and estimation for a complete Mifos Data Exchange XML import implementation
studied Mifos codebase to understand potential issues with a complete Mifos Data Exchange XML import implementation
generalized import code to handle custom field entries
revised schemas to handle custom field entries
investigated XML comparison libraries to handle validating equality of unordered elements
had a discussion with Terry Wong regarding prior work on a Mifos API and its relation to data migration
Week ending 30 Mar 2007
initial check-in of schemas and code for reading and validating Mifos Data Exchange XML
completed a first pass at persisting imported Mifos Center objects into the database and did a check-in
continued refining the XML schema
had a discussion with Arun Kanabar from MFTech about their experience as the Mifos specialist doing data migration for Grameen Koota (see [MIFOS:Data Migration MFTech
Discussion])
Week ending 23 Mar 2007
preliminary decision taken to use RELAX NG (RNG) as the primary XML schema language for data migration and also support W3C XML Schema (WXS) (see Data Migration Schema And Tool Choices)
preliminary decision taken to use JAXB to generate java classes for reading,writing and validating XML
defined and iterated on an RNG schema for the Mifos Center business object
created an ant build file that includes targets for: _ RNG -> WXS conversion _ RNG -> RNC (RELAX NG compact syntax format) _ WXS -> java class generation using JAXB _ running tests to exercise XML validation, reading & writing
successfully converted the RNG schema to a WXS schema
successfully generated and compiled java files from the WXS schema using JAXB
created a sample Mifos Data Exchange XML file for Center objects
wrote and successfully ran initial tests to validate, read and write Mifos Data Exchange XML for Center objects
Week ending 16 Mar 2007
Consider options for a Mifos data import type (e.g. Excel, CSV, XML, SQL).
Decide on the import type that will be used (XML - see Data Migration Import Type Design Decision)