Skip to main content

FOLIO Migration Tools

example workflowcodecov readthedocs

A toolkit that enables you to migrate data over from a legacy ILS system into FOLIO LSP

What is it good for?

FOLIO Migration tools enables you to migrate libraries with the most common ILS:s over to FOLIO without data losses or any major data transformation tasks. The tools transforms and loads the data providing you and the library with good actionable logs and data cleaning task lists together with the migrated data.

What data does it cover?

FOLIO Migration Tools currently covers the following data sets:

  • Catalog (Inventory and SRS in FOLIO terminology)
  • Circulation transactions (Open loans and requests)
  • Users/Patrons (In FOLIO, these share the same app/database)
  • Courses and Reserves (Course reserves)
  • Organizations (Vendor records)
  • Orders (limited support)

What additional functionality is on the roadmap?

This is the loose roadmap, in order of most likely implementations first

  • ERM-related objects
  • Financial records

Can I use the tools for ongoing imports and integrations?

The tools are primarliy maintained for performing initial data migrations. We recommend that you use native FOLIO functionality for ongoing loads where possible. In theory, these tools can be used for ongoing patron loads from systems like Banner, Workday, or PeopleSoft. But we recommend you to weigh your options carefully before going down this path.

Contributing

Want to contribute? Read the CONTRIBUTING.MD

Found an issue?

Report it on the Github Issue tracker

The scripts requires a FOLIO tenant with reference data properly set up. The script will throw messages telling what reference data is missing.

Installing

Make sure you are running Python 3.10 or above.

1. Using uv

2.1. Create and activate a virtual environment

uv venv    # Creates a virtual env in the current folder
source .venv/bin/activate  # Activates the venv    

2. Install using pip:

uv pip install folio-migration-tools

3. Test the installation by showing the help pages

uv run folio-migration-tools -h

2. Using pipenv

1. Run

pipenv install folio-migration-tools

2. Test the installation by showing the help pages

pipenv run python3 -m folio_migration_tools -h

FOLIO migration process

This repo plays the main part in a process using a collection of tools. The process itself is documented in more detail, including example configuration files, at this template repository In order to perform migrations according to this process, you need the following:

Internationalization

This repo uses Python-i18n to translate reports between languages, and to handle large strings for templates.

Any English string which will end up in a report should be wrapped in the function i18n.t from i18n:

Keys/Usage

i18n.t("Reports")+":"

Templating is achieved with %{[key]} blocks, and keyword arguments in the internationaliation:

i18n.t("Code '%{code}' not found in FOLIO",code=folio_code)

Long strings can use a placeholder key:

i18n.t("blurbs.Introduction.description")

With the full string in translations/en.json:

"blurbs.Introduction.description": "<br/>Data errors preventing records from being migrated

Translations Files

Translation files live in the translations directory, with en.json as the default.

Extract template files with the extract_translations script:

python scripts/extract_translations.py

Internationalizations

Other langauges translations live in translations/[locale].json. For example, Spanish would be es.json.

The keys must match the English keys, but the Values should be translated.

You can update a language file's keys with:

python scripts/update_language.py --target-lang [locale]

Translate all new strings, which begin with TRANSLATE, then commit.

Tips

  • Internationalize entire phrases or paragraphs, not just the constitutent words. Syntax and grammar vary significantly between languages.
  • Name template variables as generically as possible in the circumstance, and check translations for reusable translations.
  • In a block with sentences separately followed by values, such as a table, you only need to translate the sentences.

Running the scripts

For information on syntax, what files are needed and produced by the toolkit, refer to the documentation and example files in the template repository. We are building out the docs section in this repository as well:Documentation ¨

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

folio_migration_tools-1.12.8.tar.gz (241.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

folio_migration_tools-1.12.8-py3-none-any.whl (286.4 kB view details)

Uploaded Python 3

File details

Details for the file folio_migration_tools-1.12.8.tar.gz.

File metadata

  • Download URL: folio_migration_tools-1.12.8.tar.gz
  • Upload date:
  • Size: 241.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.0 {"installer":{"name":"uv","version":"0.12.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for folio_migration_tools-1.12.8.tar.gz
Algorithm Hash digest
SHA256 a96a8019dc5347c94e3aea295d1ea3fa28fcaecb467b3f65e280f265b02e29cc
MD5 ba0219fb59b96c0a8dc2913c6ad9a8e1
BLAKE2b-256 13e25433eabcb75cdc831e8f0b926b0b34a0e9733916183ce45de5558271f312

See more details on using hashes here.

File details

Details for the file folio_migration_tools-1.12.8-py3-none-any.whl.

File metadata

  • Download URL: folio_migration_tools-1.12.8-py3-none-any.whl
  • Upload date:
  • Size: 286.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.0 {"installer":{"name":"uv","version":"0.12.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for folio_migration_tools-1.12.8-py3-none-any.whl
Algorithm Hash digest
SHA256 aa552b4c19f24a5d53ad1f6bd738b42986ea10f0087c8408ce2673290f6f0543
MD5 0a1f351cc0cc1b376d71a209f40f4d92
BLAKE2b-256 03e5ca667a6baa03ebf7d187ce85a1ae4adcd1bbeb4c399be90a39b7caace950

See more details on using hashes here.

Release history Release notifications | RSS feed

1.12.9

2 files

This release

1.12.8 This release

2 files

1.12.7

2 files

1.12.6

2 files

1.12.5

2 files

1.12.4

2 files

1.12.3

2 files

1.12.2

2 files

1.12.1

2 files

1.12.0

2 files

1.11.3

2 files

1.11.2

2 files

1.11.1

2 files

1.11.0

2 files

1.10.6

2 files

1.10.5

2 files

1.10.4

2 files

1.10.3

2 files

1.10.2

2 files

1.10.1

2 files

1.10.0

2 files

1.9.10

2 files

1.9.9

2 files

1.9.8

2 files

1.9.7

2 files

1.9.6

2 files

1.9.5

2 files

1.9.4

2 files

1.9.3

2 files

1.9.2

2 files

1.9.1

2 files

1.9.0

2 files

1.9.0a2

2 files

1.9.0a1

2 files

1.8.25

2 files

1.8.24

2 files

1.8.23

2 files

1.8.22

2 files

1.8.21

2 files

1.8.20

2 files

1.8.19

2 files

1.8.18

2 files

1.8.17.post1

2 files

1.8.17

2 files

1.8.16

2 files

1.8.15

2 files

1.8.14

2 files

1.8.13

2 files

1.8.12

2 files

1.8.11

2 files

1.8.10

2 files

1.8.9

2 files

1.8.8

2 files

1.8.7

2 files

1.8.6

2 files

1.8.5

2 files

1.8.4

2 files

1.8.4rc4

2 files

1.8.3

2 files

1.8.2

2 files

1.8.1

2 files

1.8.0

2 files

1.7.11

2 files

1.7.10

2 files

1.7.9.post1

2 files

1.7.9

2 files

1.7.8

2 files

1.7.7

2 files

1.7.6

2 files

1.7.5

2 files

1.7.4

2 files

1.7.3

2 files

1.7.2

2 files

1.7.1

2 files

1.7.0

2 files

1.6.4

2 files

1.6.3

2 files

1.6.2

2 files

1.6.1

2 files

1.6.0

2 files

1.5.1

2 files

1.5.0

2 files

1.4.8

2 files

1.4.7

2 files

1.4.6

2 files

1.4.5

2 files

1.4.4

2 files

1.4.3

2 files

1.4.2

2 files

1.4.1

2 files

1.4.0

2 files

1.3.10

2 files

1.3.9

2 files

1.3.3

2 files

1.3.2

2 files

1.3.1

2 files

1.3.0

2 files

1.2.3

2 files

1.2.2

2 files

1.2.1

2 files

1.2.0

2 files

1.1.5

2 files

1.1.4

2 files

1.1.3

2 files

1.1.2

2 files

1.1.1

2 files

1.0.4

2 files

1.0.3

2 files

1.0.2

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page