





















































In this article by Vandana Pal, author of Alfresco for Administrators, we will go deeper into the concepts of Alfresco. Upgrading Alfresco is a multistep process. Based on the customizations made and the new features available in Alfresco, you need to first decide the target version of Alfresco. On the basis of the currently installed version, there could be different paths to upgrade alfresco.
Upgrading Alfresco involves moving all the content (database, content store, and indexes) to the new version of it, and if there is any feature customization to made in Alfresco, it needs to be upgraded in order to make it compatible with new system. The final step involves validating the entire system and its data.
Now, let's go through all of the steps in detail.
(For more resources related to this topic, see here.)
Alfresco's major versions include 2.x, 3.x, 4.x, and 5.0. 2.x is the oldest version, and 5.0 is the latest version available in Alfresco. Recently, Alfresco has stopped providing support for any version that's older than 4.x.
In general standard paths if your current Alfresco system is version 2.x, then you cannot directly upgrade to 4.x or 5.0 as there are major functionality changes. Alfresco recommends that you go to an intermediate stable version before upgrading to the final version.
Here are few samples to upgrade the different versions of Alfresco Enterprise:
Before deciding on any particular path, it is very important to contact Alfresco's support to get information on the complete upgrade path.
Also, before you choose the target version to be upgraded, there are few important points that need to be considered:
Any upgrade that has standard guidelines needs to followed apart from any version you are currently upgrading. Let's go through each of the steps in details.
Analyzing the current system and new target upgraded system is very important for any upgrade and planning purposes. The first step to do this should be to get details about the current infrastructure, such as the clustered environment, amount of customizations that have been made, important features that are used, data size, and so on.
The second step involves deciding which upgraded target version to use and understanding all the features that your current application has. Once you have these details, decide on the target version where Alfresco will be upgraded and identify all the software requirements and environment details from the Alfresco support stack. For example, when you upgrade to the latest version of Alfresco, you might have to change the JDK version, the application server needs to be upgraded, the system stack might need to changed, the Solr version may need to be upgraded, and so on.
Prepare a checklist of the new system requirements and the validation process.
Install the new Alfresco version on a separate sever from the production system. Validate whether the installation is performed correctly and has been documented.
If you have a distributed clustered environment, enable clustering and validate whether the application is working as expected. Don't use the production data yet, validate it with the blank database and content store first.
If your current Alfresco system has any code customizations or extensions deployed, make sure that all the code is compatible with the new version. Also, make sure that any configuration changes executed in the old system are also configured properly in the new Alfresco server.
Deploy all the customized code and configurations in the new Alfresco server and perform a regression test. Ensure that your existing application works properly with the new version of Alfresco. All these validations are very important prior to the upgrade.
Once you have validated whether the new Alfresco server is installed and configured properly, it is time to actually upgrade the data. Here are the steps that need to be performed to do this:
dir.root=<Cotnent store location. Property configured in alfresco-global.properties>
db.url =<Database connection details. Property configured in alfresco-global.properties>
data.dir.root=<Solr Index location. Property configured in solrcore.properties for both workspace and archive indexes>
dir.indexes=<Lucene index path. Property configured in alfresco-global.properties>
Restore the database content-store and indexes on separate server. If we keep upgraded environment separate then production server can still be used and will not be impacted.
dir.root=<Restored content store location>
db.username=<Set correct alfresco database username>
db.password=<Alfresco database password>
db.name=<Database name>
db.url=<Full Database URL>
index.subsystem.name= <Set proper subsystem name>
data.dir.root=<Set the full path for the indexes>
system.workflow.engine.jbpm.enabled=true
If the server is validated properly and all goes well, you can switch over to the new upgraded server and the old production server can be removed.
Alfresco supports only Solr4. It doesn't support Lucene or the older versions of Solr anymore. To completely the upgrade to Alfresco, a system has to recalculate all the indexes with the latest versions. In case the current system uses Lucene Indexes, the system needs to be upgraded to Solr before we can upgrade it to Solr4.
Let's go through the steps to upgrade Solr:
data.dir.root=<Index Directory location>
enable.alfresco.tracking=<Set to true to start the tracking>
alfresco.host=<Alfresco Server Host>
alfresco.port=<Alfresco Server Port>
alfresco.port.ssl=<Alfresco Server SSL Port>
alfresco.cron=<Cron expression to tracking Alfresco index>
index.subsystem.name=solr4
dir.keystore=<New solr certificate location>
solr.port.ssl=<Solr SSL port>
In this article, we took a look at the different upgrading process for Alfresco in detail. We also talked about choosing an upgrade path, setting up a new environment, and the validation of a new environment.