Migration tests testing-the-migration
General procedure general-procedure
Depending on your configuration, there are several ways of carrying out migration tests.
You should have a test/development environment to carry out migration tests. ÃÛ¶¹ÊÓƵ Campaign environments are subject to license: check your license contract or contact your ÃÛ¶¹ÊÓƵ representative.
-
Stop all developments in progress and carry them over to the production environment.
-
Make a backup of the development environment database.
-
Stop all ÃÛ¶¹ÊÓƵ Campaign processes on the development instance.
-
Make a backup of the production environment database and restore it as a development environment.
-
Before starting the ÃÛ¶¹ÊÓƵ Campaign services, run the freezeInstance.js cauterization script which lets you clear the database of any objects that were running when the backup was started.
code language-none nlserver javascript nms:freezeInstance.js -instance:<instance> -arg:<run|dry>
note note NOTE The command launches by default in dry mode, and lists all the requests that were executed by that command, without launching them. To execute cauterization requests, use run in the command. -
Make sure your backups are correct by trying to restore them. Make sure you can access your database, your tables, your data, etc.
-
Test the migration procedure in the development environment.
-
If the migration of the development environment is successful, you can migrate the production environment.
Migration tools migration-tools
Various options let you measure the impact from a migration and identify the potential problems. These options are to be executed:
-
in the config command:
code language-none nlserver.exe config <option> -instance:<instance-name>
-
or at the postupgrade:
code language-none nlserver.exe config -postupgrade <option> -instance:<instance-name>
- You must use the -instance:
<instanceame>
option. We do not recommend using the -allinstances option. - The ÃÛ¶¹ÊÓƵ Campaign update command (postupgrade) lets you synchronize resources and update schemas and the database. This operation can only be carried out once and only on the application server. After synchronizing resources, the postupgrade command lets you detect whether the synchronization generates any errors or warnings.
Non-standard or missing objects
-
The -showCustomEntities option displays the list of all non-standard objects:
code language-none nlserver.exe config -showCustomEntities -instance:<instance-name>
Example of a sent message:
code language-none xtk_migration:opsecurity2 xtk:entity
-
The -showDeletedEntities option displays the list of all the standard objects that are missing in the database or the file system. For each missing object, the path is specified.
code language-none nlserver.exe config -showDeletedEntities -instance:<instance-name>
Example of a sent message:
code language-none Out of the box object 'nms:deliveryCustomizationMdl' belonging to the 'xtk:srcSchema' schema has not been found in the file system.
Verification process verification-process
Integrated as standard in the postupgrade command, this process lets you display warnings and errors that could make the migration fail. If errors are displayed, the migration has not been executed. If this happens, correct all the errors then re-start the postupgrade.
You can start the verification process on its own (without migration) using the command:
nlserver.exe config -postupgrade -check -instance:<instance-name>
The following expressions are searched for (case sensitive):
If you are using one of these deprecated deployment types in an external account, this external account should be deleted and you should then run the postupgrade command.
To change to Web API deployment, refer to Web applications.
A database and schema coherence check is also carried out.
Restoration option restoration-option
This option lets you restore out-of-the-box objects if they had been modified. For each restored object, a backup of your changes is stored in the selected folder:
nlserver.exe config -postupgrade -restoreFactory:<backupfolder> -instance:<instance-name>
Resume the migration resuming-migration
If you restart the postupgrade after a migration failure, it resumes from the same place it was stopped.