Many of you whom I have met personally know that I am an instrument rated pilot. As a pilot I use checklists before during and after every flight. They are a very important part of aviation for many reasons. Checklists promote safety by ensuring that critical tasks are completed. They also ensure that these tasks are done in sequence and that they are performed at the right time. For example, it is generally considered too late to put your gear down after landing. Finally, they ensure that everyone in aviation behaves and works in a consistent manner. The stakes are high so discipline is essential.
Migrating from one release of xTuple to the next, like flying an airplane, is a straight forward process so long as you have basic skills and a plan for utilizing them. To reduce risk and ensure business continuity and data continuity you should follow a migration checklist that, like an aviation checklist, ensures you perform all required tasks, in sequence, and at the right time.
Consider these steps:
Planning Phase
- Release Notes — review the release notes for the releases up to the release to which you are migrating
- Timeline — create a time line for training, piloting, and cutover
- Resources — identify the key resources that required during each phase and ensure they are available and scheduled
- Enhancements Catalogs — create a catalog that includes:
- Reports — list all report definitions that have been enhanced (grade > 0)
- Custom Reports — list all report custom report definitions
- Scripts — list all custom stand alone customized scripts and if applicable associated screens
- Packages — list all custom and customized packages and the screens they impact
- Business Process Flows — create or update all Business Process Flows ensuring that these encompass all business processes and all enhancements in the Enhancements Catalog
- New Functionality — review new functionality in the destination release and update the Business Process Flows to incorporate these changes
- xTuple Updater — acquire the latest version of the xTuple Updater application
Pilot phase
- Backup — create a backup of the production database
- Pilot Database — restore the backup to a migration pilot database
- Migrate Pilot — migrate the pilot database to the desired release
- Correct Data — correct any data issues discovered during the migration process and document these in a Data Correction List so that you are ready to apply them during the production migration process (this link can help correct problems found during migration: http://www.xtuple.org/CommonUpgradeIssues )
- Execute Process Flows — execute the updated Business Process Flows:
- Validate the screen based outcomes for each process flow
- Validate document based outcomes (e.g. Purchase Order, Packing List, Invoice) for each process flow
- Remediation List — create a list of problems with enhancements and reports that were found during the pilot phase
- Privileges List — create a list of users / groups that will need new privileges after migration to the new release
- Remediate Enhancements and Reports – fixed problems listed on the Remediation list
- Final Pilot — execute the Business Process Flows with the remedaited Enhancements and Report
- Training — train end users on the new release
Cutover Phase
- Logoff — logoff all users and deny access to xTuple
- Backup — create a backup of the production database
- Correct Data — apply the data corrections discovered in the pilot phase and documented in the Data Correction List
- Update — migrate the production database to the new release using the xTuple Updater
- Remediate — remediate enhancements and report definitions based on the Remediation List created in the Pilot phase
- Deploy xTuple Client — deploy the xTuple client to end users
- Update Privileges — update privileges for Users and Groups
- Logon — grant end user access to xTuple
- Monitor — monitor production processes in accordance with the Business Process Flow document
The amount of time it takes to migrate from one release to the next depends on several factors and can vary from a couple days to a few weeks. The number of enhancements such as extension packages, standalone scripts, and changes to reports, will have an impact although these may work perfectly in the next release. The piloting phase will determine this. Also, maintaining up-to-date Enhancement Catalogs and Business Process Flows between releases accelerates the process. All this, along with the use of a good checklist will ensure the migration goes smoothly, is safe, and stays on schedule, just like a good flight.