Tips for a successful data migration

During your migration to Koha, diving deep into your data is one of the most crucial aspects of the process, and there are three things we'd like our onboarding partners to keep in mind:

  1. First and foremost, think about patron experience.

  2. Streamlining the workflow and making it simpler for staff members.

  3. Simplicity and consistency.

On Data Extractions

During the migration process, you will need to do two data extractions. The first initial data extract is for your test system, and the final data extract is for your go-live weekend.

Tip #1: Take a lot of notes and do not edit the raw data.

  • On go-live, you will want to extract the data the same way you did when you first successfully extracted your data.

  • While editing the extracted data might seem helpful, we'd like you to keep the data in its raw form so we can accurately analyze your data.

  • Since we use column headers and/or fields to map the data, it is important that the extracted data remains as consistent as possible. A slight change in column headers and/or fields can throw us off when migrating your data.

Tip #2: With final data extraction in mind, please either consider closing prior to your go-live weekend or prepare to operate with limited functionality.

  • While we understand that closing over the weekend can be difficult for libraries, especially for consortia, please consider closing during your go-live weekend and/or prepare to operate with limited functionality. This will ensure that the transition from your non-Koha ILS to Koha will go smoothly.

  • If your library must stay open during go-live weekend, we do give you some guidelines and best practices. That way, you know what to expect.

Tip #3: If your non-Koha ILS uses numerical values in codes, send us a description for what they mean. This will save us a lot of time.

On Data Mapping

Data mapping is where we look at the data that currently exist in your non-Koha ILS and map them to Koha-equivalent fields.

Tip #1: If it's data that you and your staff members haven't seen, it is very likely that your library doesn't need it.

  • During the migration process we unearth what we call "skeletons” or “gremlins" in your catalog. We will find those hidden betamax and cassette tapes. If you haven't seen a particular material type in a while, it is probably irrelevant now and therefore not needed.

Tip #2: Keep your Koha's branch codes, patron categories, item type, shelving location, collection codes, and attributes as simple as possible.

  • Keep branch codes, patron categories, item type, shelving location, collection codes, and attributes to 10 characters, no special characters, and no spaces. (See Database Code Tips) You can be as descriptive as you want with the descriptions, but keep the codes simple.

  • Please consolidate as many patron categories, item types, shelving location, and collection codes as possible. If we could cut your 200 item types from your non-Koha ILS down to 10, we consider that a win-win, not only for us doing the migration, but for your patrons and staff members as well. It makes setting up your circulation and policy rules in Koha easier for patrons to find the item they are looking for when using the OPAC.

  • While we ask you not to obsess over the codes, since it is not something you will see a lot of in the staff client, we also ask you to make sure that it makes sense to the staff members doing reports. This means that you might not want to use numerical values such as 1, 2, 3, 4.

  • Avoid duplicate codes. This means that if you already have a shelving location of 'MAP', you wouldn't want to use 'MAP' in collection codes.

Tip #3: It is best to map item types, shelving locations, and collection codes to a consistent field or a single data point.

  • We get some libraries asking us to map to a non-consistent bib and/or item text fields (i.e. call numbers) or two fields to either item types, shelving locations, or collection codes. While this is a possibility, we find that mapping to a non-consistent text field or two fields causes inconsistent data during the migration. Keeping your mapping as simple and as consistent as possible is key to a cleaner data on go-live. Any data refinement can be done after everything is loaded to your test system or even after you've gone live. Our scripts and data work are very specific to account for accuracy and avoid data discrepancies. As an example, three fiction books with call numbers 'Fic', 'FIC', and 'FIC ' (notice the space) are considered three different things. Every single data variability matters.

On Data Testing

Once we load your library's data into your test system, it is very important for you and your team to do some testing. This is when your migration specialist and you, along with your team, will work together and do some data refinements.

Tip #1: Search, search, and search some more

  • If there are fields that did not map correctly or bib records and items that did not migrate over, we would rather find those earlier in the process than later.

  • While the test system is a snapshot of your data at a certain point in time, it is best to double-check how your data migrated over. That means searching for bibs, items, borrowers, subscriptions and serials, checkouts, fines, and holds.

Tip #2: Test checkouts, fines, and holds

  • After training, when you have circulation and fine rules set, make sure to test the behavior of checkouts, fines, and holds. Check some items out to your account, place a hold, create a fine, change the due dates, etc.. Reach out to us if you have any questions.

Tip #3: Explore Koha and have fun

  • …all the while, keeping track of anything that you have questions about and let us know!


Do not stress and ask us a lot of questions. As one of our Educators would say, "Let us do the stressing for you." Our team of migration specialists breathe and live data. We are passionate about ensuring that library's data retains its integrity while also keeping in mind accessibility, usability, and security. This is what we love to do, so we are here to help and assist you throughout the migration process and even after your go-live!

Additional Resources

Read more by Enica Davis

Tags data, migration, tips, golive