cancel
Showing results for 
Search instead for 
Did you mean: 

Alfresco Migration From 5 to 26 Version

therealkerkaz
Champ in-the-making
Champ in-the-making

Hello everyone,

At the moment, I am responsible for migrating all business processes within our company (and eventually all related data) from Alfresco Community Edition 5.x to the latest available version, which is currently 26.x.

I have already deployed a test instance of version 26 on my local machine and have access to both the production source code and all the data currently used by the company.

First of all, apologies if this is too broad of a question or lacks technical details. At this stage, the only specific information I can provide is that the current system contains custom business processes implemented in the Share UI using Activiti.

I am familiar with tools such as the Alfresco SDK, as well as concepts like In-Process and Out-of-Process extensions. However, the variety of available tools, frameworks, and approaches for developing custom modules is a bit overwhelming.

I would greatly appreciate any advice on the subject. For example:

  • What types of extensions are typically involved when dealing with business processes implemented in the Share UI?

  • Would you recommend using the Alfresco SDK for such a migration?

  • What technologies should I expect to work with besides Java?

  • Are there any courses, guides, or documentation resources you would particularly recommend?

I have already gone through a considerable amount of documentation, but I am still struggling to understand which specific technologies and approaches are actually relevant to my situation.

If you need any additional details in order to provide more specific recommendations, I would be happy to share them, as I have access to the source code and the existing implementation.

Thank you in advance.

1 ACCEPTED ANSWER

jesusmarmol
Confirmed Champ
Confirmed Champ

Hi. First of all check the existing upgrade guides

Probably you'll need to do the upgrade in several steps instead to move from 5.x to 26. A first recomended walkthrough will be to check the release anouncement for each version from 5.x to see if there is something breakable in your existing installation.

You can follow the tutorials about upgrading alfresco BUT, and this is critical, first of all make a good copy (or 2) of content and database. Before any upgrading develop and test a error recovery politic. Once you know you won't make any critical error continue with the process.

Be sure to read about database schemas compatibility. Apart of that the upgrade should be a hard job (is recommended to be done by someone with deep knowledge) but more or less painless.

About the extensions you should make an inventory of the deployed modules by checking the alfresco-mmt jar or the admin pages. Check amps and jar and clone the repos to see if they work on the new version or if they need some adjustment.

Do the same for alfresco share.

Also check for rules applied on folders. is common for a installation to have rules and scripting that nobody documented and when you migrate they are missed.

About the flows I think nobody uses the default flows anymore so maybe is a good moment to make a deploy of alfresco process services or any other activiti based aplication and integrate it with your alfresco

About technologies you'll need a good knowledge of java and alfresco, probably docker and database management

 

This is a broad subject so maybe you need mode aclarations, is a sensitive process for any dev so good luck !

View answer in original post

5 REPLIES 5

jesusmarmol
Confirmed Champ
Confirmed Champ

Hi. First of all check the existing upgrade guides

Probably you'll need to do the upgrade in several steps instead to move from 5.x to 26. A first recomended walkthrough will be to check the release anouncement for each version from 5.x to see if there is something breakable in your existing installation.

You can follow the tutorials about upgrading alfresco BUT, and this is critical, first of all make a good copy (or 2) of content and database. Before any upgrading develop and test a error recovery politic. Once you know you won't make any critical error continue with the process.

Be sure to read about database schemas compatibility. Apart of that the upgrade should be a hard job (is recommended to be done by someone with deep knowledge) but more or less painless.

About the extensions you should make an inventory of the deployed modules by checking the alfresco-mmt jar or the admin pages. Check amps and jar and clone the repos to see if they work on the new version or if they need some adjustment.

Do the same for alfresco share.

Also check for rules applied on folders. is common for a installation to have rules and scripting that nobody documented and when you migrate they are missed.

About the flows I think nobody uses the default flows anymore so maybe is a good moment to make a deploy of alfresco process services or any other activiti based aplication and integrate it with your alfresco

About technologies you'll need a good knowledge of java and alfresco, probably docker and database management

 

This is a broad subject so maybe you need mode aclarations, is a sensitive process for any dev so good luck !

NormandoHall
Champ on-the-rise
Champ on-the-rise

I had to perform the same upgrade, from version 5 to 26.1, on another server. I installed the clean version 26.1 from a zip file, using some of the excellent scripts from https://github.com/aborroy/alfresco-ubuntu-installer, but adapted for my Debian 12 system.

Once installed, I exported the documents from the old server using WebDAV and rclone, and imported them to the new server in the same way. Everything was clean and working.

jesusmarmol
Confirmed Champ
Confirmed Champ

Is a good approach if you want to load only the documents but I'm afraid that this is not a full upgrade, you'll lose db metadata (correct me if I'm wrong)

This way even if you export metadata as well they wont be correctly mapped to doc url, the recommended approach is to load from the db and repository folder to ensure consistency

Thank you for your response. I have read through all the release notes and tried to identify the key changes. However, that was quite challenging, as upgrading across 17 versions is a significant leap, and I assume that many issues will only become apparent as I encounter them during the migration.

I would also like to thank you for recommending the Alfresco Extension Inspector. I managed to test it successfully on the old version.

At this point, by interacting with the API and writing a couple of scripts, I have successfully migrated all users, as well as groups and subgroups, from the old Alfresco instance to the new one.

My main objective, however, is to migrate the custom business processes. These are workflows where, for example, a document is sent to one department for review, then forwarded to another department for approval or signing, and finally returned to the originating department. There are not many of these workflows—currently around ten—but I need to ensure that they provide the same functionality on the new version.

This leads me to my main question: what would be the best migration strategy in this case? Specifically, should I start by migrating the database, or is it sufficient to migrate only the users, groups, and documents? As far as I understand, migrating documents is considerably more complex, and I doubt that the same scripts and API calls I used for users and groups will be enough.

In other words, I want to make sure I build the right foundation before I start implementing and testing the business processes. I am also wondering whether migrating the database at this stage would be overkill, since database migration is typically performed at the very end of an upgrade project.

Yes. the process is to upgrade step by step (i think that from 5 to 26 you can do it in 4 phases, from 5 to 7, from 7 to 23 and from 23 to 26) and see which problems arise and solve it.

About the migration process, the recomended aproach is to load the new instance using a backup fo both content repository directory and database.

Be aware that only migrating documents will not work, because you need the database. The database contains all the documents metadata and properties, even the locations and sites and folder structure.

So  if you load a backup of both the content and database you should have an identical alfresco, including users without using scripts (i'm not very sure about this last, its been a while since i had to do a full restore process)

So, I will aproach the migration this way:

1. Create a backup of the current alfresco instance, test it in a dev environment, check if everithing is fine, then do it again. This way you can work with peace knowing that no critical errors would be made because you can restore everything. Now upgrade your dev environment to 26, you'll need to perform several operations included in the migration guides. At the end you'll have a functional alfresco 26 exactly like your production env

2. Implement the current extensions in a clean alfresco and upgrade it to 26 (you can do it in the prev instance also), this way you can check if the current extensions launch conflicts with java version or something and you can fix it

3. Move the extensions to your alfresco 26. Check that every extension works fine

4. workflows should be done the last, as they use the structure of the repo and users. i believe that if you migrated from an instance with workflows they should be working right know as well as folder rules, check it. If not you should locate the old workflows and load it into the new alfresco, as you have the same users and folders should be painless, just load the workflow and apply it.

then do a full auditory, check extensions and if the system works like it should, if everything is fine you can replicate this steps in the real environment. Be sure to write a step by step guide while you do it, if you have enough time in your work you can do it again following the guide to be sure