Data Migration Overview and Dependencies

Data Migration Here we cover some tips and strategies for migrating data from a legacy system into Mifos.  

Migration Dependencies

Data

Description

Dependencies

Mifos Config Information

Includes database settings, properties files, localization settings, definition of office hierarchy, additional fields, look up options etc

None

Office & Related Information

Includes details of the head office and the various branches

Config Info

Personnel& Related Information

Includes details of all the users of the system

Config & Office Info

Customer & Related Information

Includes the details of the customers of the MFI

Config,Office & Personnel Info

Manual Data Entry

Before beginning any data migration you should evaluate what pieces of data may be better served by doing manual data entry.  Most of this has something to do with the Admin screen in Mifos, but there may be other areas to consider as well. 

The following is a list of some of the areas you should consider entering in manually before beginning your data migration.

No.

Fees Related actions from Admin Screen

Notes

1

Define a new fee

Mifos Tables Hit are : FEES, FEE_FREQUENCY

 

No.

Product Related actions from Admin screen

Notes

1

Define Product Categories

If necessary

2

Define New Loan/Savings Product

 

3

Define Product Mix

 

 

No.

Office & Personnel Related actions from Admin screen

Notes

1

Define a New office

Office Details

2

Define Office Hierarchy

 

3

Define New System User

Personnel Details

4

Manage Roles and Permissions

 

 

No.

Defining Additional Data from Admin screen

Notes

1

Define Additional Fields

The extra information (data fields) in the MFI Legacy system that need to be captured in Mifos are defined here

2

Define Look up Options

The drop down values for certain data fields are defined here

3

Define Labels

Any existing Labels on the UI of the application are changed here

4

Define Mandatory Fields

Fields are tagged as Mandatory or Hidden here

 

No.

DB Configuration

Notes

1

Localization Settings : Language

http://www.mifos.org/developers/wiki/ConfiguringMifos#application-wide-install-time-settings
applicationConfiguration.custom.properties

2

Application Settings

Enable features that are required in this DB table: config_key_value_integer

3

View Organization Settings Link from the Admin Screen

applicationConfiguration.default.properties

4

Custom properties

applicationConfiguration.custom.properties

5

Office Hierarchy of the MFI

Part of the DB Settings & properties files settings.
It can also be set using Admin Tab--> Define Office Hierarchy

6

Holiday Configuration

Admin Screen --> Define new holidays. Define repayment rules for each holiday.
Repayment rules are not loan specific in Mifos, 

7

GL Codes

GL Codes can only be added, the codes shipped with Mifos  cannot be modified.
For more details refer to - http://mifos.org/developers/wiki/ConfiguringMifos#using-a-custom-chart-of-accounts

Since  Mifos 2.6.0 user interface for Chart of Accounts creation is added and it is possible to add and modify GL Codes.


 

Inserting Customer data

The following is a list of the tables one must insert data into to successfully create a customer.

 

No.

UI Action

Tables Affected - Inserts and Updates

Notes

1

Create a Customer

insert into CUSTOMER

Data from UI
One Entry per Customer

 

 

insert into CUSTOMER_DETAIL

Data from UI
One Entry per Customer

 

 

insert into CUSTOMER_ADDRESS_DETAIL

Address Data from UI
One Entry per Customer

 

 

insert into CUSTOMER_NAME_DETAIL

Client's & Dependant's Name Detail from UI
Two Entries per Customer (for the Client and Spouse/Father)

 

 

Insert into CUSTOMER_CUSTOM_FIELD

Additional Data from the source as defined will be stored here
Entries per Customer is dependent on the number of additional fields defined

 

 

insert into ACCOUNT

A customer account is created
Can have more than one entry per Customer

 

 

insert into CUSTOMER_ACCOUNT

Contains list of Customer accounts created

 

 

insert into CUSTOMER_MEETING

Based on the meeting schedule of the group/center which he is a part of or for a client who is not part any group/center a separate customer meeting is created
One Entry per Customer

 

 

insert into CUSTOMER_SCHEDULE

Based on the meeting schedule of the group & the MFI  Holiday schedule , a repayment schedule for 10 installments is created when a client is created

 

 

insert into CLIENT_PERF_HISTORY or GROUP_PERF_HISTORY

Mifos inserts 2 metrics including total active loans & last loan amt. The other metrics are calculated on the fly in the Mifos code, there are no inserts made to the DB
One Entry per Customer

 

2

Edit Customer Status

insert into CUSTOMER_NOTE

Note captured from UI
Can have more than one entry per Customer

 

 

insert into CUSTOMER_FLAG_DETAIL

The reason for closing a customer is captured
One entry per Customer

 

 

insert into CHANGE_LOG

An entry is made when any existing information is updated
One Entry per Submit Action

 

 

insert into CHANGE_LOG_DETAIL

Details of the actual fields updated is captured here
More than one entry per Submit action.Number of entries depends on the number of fields changed

 

 

update CUSTOMER

Update the details that were changed

 

3

Move a Customer from One Group/Center to another

insert into CUSTOMER_HIERARCHY

An Entry is made to track Customer movement between groups/centers within the same office or between offices.
Can have more than one entry per hierarchy per customer.
Only one active hierarchy exists for a customer at any point of time

 

 

insert into CUSTOMER_MOVEMENT

An Entry is made to track Customer movement between offices
Can have more than one entry per customer per movement
Only one active movement  exists for a customer at any point of time

 

 

update CUSTOMER

Update the details that were changed

 

4

Edit MFI information

insert into CHANGE_LOG

An entry is made when any existing information is updated
One Entry per Submit Action

 

 

insert into CHANGE_LOG_DETAIL

Details of the actual fields updated is captured here
More than one entry per Submit action.Number of entries depends on the number of fields changed

 

 

Update CUSTOMER

Update the details that were changed

 

5

Edit personal information

insert into CHANGE_LOG

An entry is made when any existing information is updated
One Entry per Submit Action

 

 

insert into CHANGE_LOG_DETAIL

Details of the actual fields updated is captured here
More than one entry per Submit action.Number of entries depends on the number of fields changed

 

 

update CUSTOMER

Update the details that were changed

 

 

update CUSTOMER_DETAIL

Update the details that were changed

 

 

update CUSTOMER_NAME_DETAIL

Update the details that were changed

Note:

  1. customer_detail.business_activities is the business activity of the client which is defined in the look up options as a drop down.
  2. loan-account.business_activities_id is the loan purpose of the loan.
  3. Any change in information should be entered into CHANGE_LOG & CHANGE_LOG_DETAIL to keep track of historical data.

Excel Import Formats for migrating Customer Data & Maps between Excel Format - Mifos DB tables

The Customer Data has been classified into two sections

If the Office & Personnel data has not been manually entered, the following files can be used to migrate the data.

Inserting Loan data

Here is a list of the tables one must insert data into to successfully make a loan

 

No.

UI Action

Tables Affected - Inserts and Updates

Notes

1

Create a Loan

insert into MEETING

inserts a new record for loan account but the details are the same 

 

 

insert into RECURRENCE_DETAIL

 

 

 

insert into RECUR_ON_DAY

 

 

 

insert into ACCOUNT

 

 

 

insert into LOAN_ACCOUNT

Data From UI

 

 

insert into ACCOUNT_FEES

Fees that are applied at the time of loan creation

 

 

insert into ACCOUNT_STATUS_CHANGE_HISTORY

 

 

 

insert into LOAN_SUMMARY

 

 

 

insert into LOAN_PERF_HISTORY

 

 

 

insert into MAX_MIN_LOAN_AMOUNT

 

 

 

insert into MAX_MIN_NO_OF_INSTALL

 

 

 

insert into LOAN_SCHEDULE

One Entry per installment

 

 

insert into LOAN_FEE_SCHEDULE

One Entry per installment

 

2

Edit Account status

insert into ACCOUNT_NOTES

Stores the notes entered in the UI while changing account state

 

 

insert into ACCOUNT_STATUS_CHANGE_HISTORY

 

 

 

update ACCOUNT

 

 

 

insert into CHANGE_LOG

 

 

 

insert into CHANGE_LOG_DETAIL

Number of entries depend on the number of fields changed

 

3

Edit Account Information

update ACCOUNT

 

 

 

update LOAN_ACCOUNT

 

 

 

update LOAN_SUMMARY