########################################## Migrate data from Devilry v2 to Devilry v3 ########################################## Dumping the Devilry v2 data =========================== To dump the Devilry v2 database to JSON, run:: python manage.py devilry_dump_database_for_v3_migration Running this command will create a the output directory, and dump all entries in the database serialized as JSON. Remember to take a backup of this folder. Backup/copy files ***************** Once the data is dumped, copy the output directory generated by the script, and copy both directories containing files specified by the `MEDIA_ROOT` and `DEVILRY_FSHIERDELIVERYSTORE_ROOT` in the Devilry v2 settings file. Importing the Devilry v2 data to Devilry v3 =========================================== To import the data dumped from Devilry v2, we first need to define where files are stored so we're able to copy them. We need to define the path to the files through a couple of settings you need to define in ``~/devilrydeploy/devilry_settings.py``. This is the path to the directories you copied as described above. Set the path to the media root folder, this is the path defined in the `MEDIA_ROOT` setting in the settings file for the Devilry v2 server:: DEVILRY_V2_MEDIA_ROOT = "path/to/media/root/" Set path to delivery file hierarchy root folder, this is the path defined in the `DEVILRY_FSHIERDELIVERYSTORE_ROOT` setting in the settings file for the Devilry v2 server:: DEVILRY_V2_DELIVERY_FILE_ROOT = "path/to/delivery/root" Now, that the paths to where we can find the files is set up, we're ready to import the data. This is a pretty simple two-step process, run the command:: $ python manage.py devilry_import_v2_database this might take some time depending on how much data is stored in the v2 database, and how many files that needs to be copied. When this is finished we need to rebuild the database cache, run:: $ ievv customsql -i -r Additional info about the import script ======================================= The `devilry_import_v2_database` script comes with some arguments that can be helpful, namely `--start-at`, `--stop-at` and `--fake`. - start-at Which importer you want to start importing from? - stop-at Which importer do you want to stop at? - fake Will not import/migrate the v2 data, but simply print it to the console. For further details(such as importer names), run:: $ python manage.py devilry_import_v2_database -h Remove old semesters ==================== If you want to, you can remove old semester and all associated data. See :ref:`devilry_delete_periods`.