Upgrade guide
The upgrade process for LinXmart can be broken down into two main parts:
- Updating of the databases
- Reinstallation of the binaries (services and web sites)
The databases contain all the project data, configuration and other associated metadata for LinXmart. This means the databases endure and often need to be updated between versions, although is dependent on the changes in the new version. The binaries themselves hold no real state, other than the information required to connect to the databases and some local folder locations.
The Release Notes document, provided with the upgrade files, contains release information for each new version of LinXmart. Not only does it include the list of improvements, features and bug fixes for each version, but it also details database changes and any other configuration changes required. The Release Notes should be consulted in conjunction with this document to determine exactly what is required as part of the upgrade for each version.
Before You Upgrade
As discussed in the previous section, the LinXmart databases are the primary data store for everything you have done and configured in LinXmart. It is important to protect this data and we recommend you have sufficient database backups configured to ensure business continuity in the event of a unexpected failure.
While we take great care in testing our database upgrade scripts, it is recommended you have the ability to restore the database back to a working state.
Please ensure you have a recent backup (or do one right now) of your LinXmart databases before you continue with the upgrade.
Upgrade Procedure
The typical upgrade procedure is as follows:
- Stop application services
- Upgrade databases
- Install web site
- Install application services
Note that some additional upgrade tasks may be required for certain versions. When these tasks must be run in the upgrade process will be detailed in the Release Notes document. Please read this carefully.
Stop Application Services
The LinXmart application services runs as a Windows Service on the application server. This service handles the processing of all jobs in LinXmart.
First, ensure there are no running jobs in LinXmart. If there are, you should wait until they complete.
On the application server, open the Services management console, find LinXmart Services in the list and click on the Stop Service button.
Upgrade Database
Final reminder: ensure all LinXmart databases are backed up before continuing.
Upgrade the main database (if required). The Release Notes document will specify if there are any upgrade scripts required for the main database.
Upgrade all project databases (if required). Again, the Release Notes document will specify if there are any upgrade scripts required for the project databases. You may choose not to update project databases that will no longer be actively used.
Verify the versions of all LinXmart databases by looking at the VersionHistory table on each of them. There should be an entry for the version of the upgrade script you have just run. This script may assist:
EXEC sp_MSforeachdb 'USE [?] SELECT TOP 1 ''?'', Version FROM VersionHistory ORDER BY CreatedOn DESC'
The Release Notes may specify other updates that are required to the databases - e.g. specific update console programs. These should be applied now.
Install Web Site
The web server deployment for an upgrade is identical to that when first deploying. The PowerShell scripts for the deployment will overwrite any previous version at the same location.
Please read the Web Server Deployment section of the Deployment Procedure for details on running the web site install scripts. Essentially, you should retain the same set of installation properties from previous installations, updating the binary file zip files to the new version.
As LinXmart runs on Microsoft Internet Information Services (IIS) with .NET, a new version of the ASP.NET Hosting bundle may require installation from time to time. The Release Notes will explicitly state if this is required.
For the web App site:
- Verify
run-web-setup.ps1is configured with the correct properties - Run
run-web-setup.ps1
For the API web site:
- Verify
run-api-setup.ps1is configured with the correct properties - Run
run-api-setup.ps1
SSL Certificate
The web sites in IIS will lose their https binding after the install scripts are run. You will need to add the https binding back in, attaching the certificate used previously.
Install Application Services
The application server deployment for an upgrade is also identical to that when first deploying. The PowerShell scripts will overwrite any previous version at the same location.
Please read the Application Server Deployment section of the Deployment Procedure for details on running the application service install scripts.
- Verify
run-service-setup.ps1is configured with the correct properties - Run
run-service-setup.ps1
When the installation scripts have completed, the service will be started.
Checklist
Stop Application Services:
- Stop LinXmart Service on App Server
Upgrade Database:
- Ensure all LinXmart databases are backed up
- Upgrade main database (if required)
- Upgrade project databases (if required)
- Verify versions of all LinXmart databases
EXEC sp_MSforeachdb 'USE [?] SELECT TOP 1 ''?'', Version FROM VersionHistory ORDER BY CreatedOn DESC'
Install Web Site:
- Install new version of LinXmart Web Portal
- Run PowerShell as Administrator
- Navigate to Publish folder of deployment package
- Run
run-web-setup.ps1– enter service password when prompted - Run
run-api-setup.ps1– enter service password when prompted
- Update Bindings for LinXmartAPI and LinXmartWeb sites – ensure HTTPS binding is configured correctly
Install Application Services:
- Install new version of LinXmart Services
- Run PowerShell as Administrator
- Navigate to Publish folder of deployment package
- Run
run-service-setup.ps1– enter service password when prompted