17. Migration¶
This page contains the latest major migration guide for eduMFA.
Note
This guide currently covers migration from privacyIDEA to eduMFA. After eduMFA 3.0.0 is released, this page will be updated to cover the latest migration path.
17.1. Migrating from privacyIDEA 3.9.2¶
Caution
Make a full backup of your existing installation before starting. Include configuration files, encryption keys, and the database.
Upgrade to the latest supported privacyIDEA version (3.9.2) before switching to eduMFA.
These steps are applicable for all previously released versions.
17.1.1. High-level migration steps¶
Uninstall privacyIDEA and stop your web service (Apache2 or nginx).
Move or copy configuration from
/etc/privacyidea/to/etc/edumfa/.Rename
pi.cfgtoedumfa.cfg.Replace
PI_configuration keys withEDUMFA_keys (for example,PI_ENCFILEbecomesEDUMFA_ENCFILE).Update configuration paths to
/etc/edumfa/.Update the log file path to
/var/log/edumfa/edumfa.log.Install eduMFA (container, pip, or
.debpackage).Replace usage of privacyIDEA scripts such as
pi-managewithedumfa-managein cron jobs and systemd units.Replace
privacyideaapp.wsgiwithedumfaapp.wsgiand adjust paths in Apache2 or nginx configurations.Perform the database migration steps below.
17.1.2. Database migration¶
Run:
edumfa-schema-upgrade /opt/edumfa/lib/edumfa/migrations
The command is typically located in /opt/edumfa/bin.
If you use server .deb packages (edumfa-apache2 or edumfa-nginx),
database migration is executed automatically during package installation.
17.1.3. Manual SQL fallback¶
If automatic migration fails, apply the equivalent SQL changes:
Rename table
pidea_audittomfa_audit.Rename table
privacyideaservertoedumfaserver.PostgreSQL: rename sequence
privacyideaserver_id_seqtoedumfaserver_id_seq.MariaDB: rename sequence
privacyideaserver_seqtoedumfaserver_seq.Rename column
mfa_audit.privacyidea_servertomfa_audit.edumfa_server.Rename column
policy.pinodetopolicy.edumfanode.In
policy.action, replacelogin_mode=privacyIDEAwithlogin_mode=eduMFA.In
policy.action, replaceprivacyideaserver_readwithedumfaserver_read.In
policy.action, replaceprivacyideaserver_writewithedumfaserver_write.In
smsgateway.providermodule, replaceprivacyidea.withedumfa..