# How to change session backend

LemonLDAP::NG provides a script to change session backend. This script will help you transfer existing persistent sessions (or offline sessions) when migrating from one backend to another, or when adding indexes to a browseable sessio backend. It is available in LemonLDAP::NG utilities directory (`convertSessions`).

## How it works

The `convertSessions` utility requires you to create a job configuration file with the following content:

    # This example migrates psessions from the default File backend to a PostgreSQL database
    [sessions_from]
    storageModule = Apache::Session::File
    storageModuleOptions = {	\\
          'Directory' => '/var/lib/lemonldap-ng/psessions', 	\\
          'LockDirectory' => '/var/lib/lemonldap-ng/psessions/lock', \\
    }
    # Only convert some session types
    # sessionKind = Persistent, SSO

    [sessions_to]
    storageModule = Apache::Session::Browseable::Postgres
    storageModuleOptions = {	\\
    	'DataSource' => 'DBI:Pg:database=lemonldapdb;host=pg.example.com', \\
    	'UserName' => 'lemonldaplogin', \\
    	'Password' => 'lemonldappw', \\
    	'Commit' => 1, \\
    	'Index' => 'ipAddr _whatToTrace user', \\
    	'TableName' => 'psessions', \\
    }

## Invokation

    convertSessions -c job.ini

Options:

- `-c`: job configuration file (mandatory)
- `-i`: ignore errors. By default errors will stop the script execution
- `-d`: print debugging output