SlideShare uma empresa Scribd logo
1 de 182
Baixar para ler offline
Complex Joomla! Migrations 
JoomlaDay Deutschland 2014 
Sander Potjer - @sanderpotjer - Joomla! Community Leadership Team
Sander Potjer 
! 
Involved in the local Dutch Joomla community 
Joomla Community Leadership Team (CLT) member 
Company: Perfect Web Team 
ACL Manager developer 
E-mail: sander.potjer@community.joomla.org
Sander Potjer 
! 
Involved in the local Dutch Joomla community 
Joomla Community Leadership Team (CLT) member 
Company: Perfect Web Team 
ACL Manager developer 
E-mail: sander.potjer@community.joomla.org 
Slides: www.sanderpotjer.nl
Complex Joomla Migrations
Joomla Version Number
3.3.3
3.3.3 
[major].[minor].[maintenance]
3.3.3 
[major].[minor].[maintenance] 
(An increment of the major number generally indicates a major rework or rewrite of the code base)
3.3.3 
[major].[minor].[maintenance] 
(An increment of the minor number usually indicates a significant change in functionality.)
3.3.3 
[major].[minor].[maintenance] 
(An increment of the maintenance number usually indicates bug fixing within the minor release and possibly small 
enhancements and limited new features.)
2.5.2 vs 2.5.19
2.5.2 < 2.5.19
Joomla Version History
2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016
2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 
Joomla 1.0 
1.0 
1.0.15
2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 
Joomla 1.0 
Joom1.l0a 1.5 
1.0.15 
1.5.26
2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 
Joomla 1.0 
Joom1.l0a 1.5 
Joomla 1.6 
1.0.15 
1.5.26 
1.6.6
2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 
Joomla 1.0 
Joom1.l0a 1.5 
Joomla 1.6 
Joomla 1.7 
1.0 
1.0.15 
1.5.26 
1.6.6 
1.7.5
2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 
Joomla 1.0 
Joom1.l0a 1.5 
Joomla 1.6 
Joomla 1.7 
Joom1.l0a 2.5 
1.0.15 
1.5.26 
1.6.6 
1.7.5 
2.5.19
2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 
Joomla 1.0 
Joom1.l0a 1.5 
Joomla 1.6 
Joomla 1.7 
Joom1.l0a 2.5 
Joomla 3.0 
1.0 
1.0.15 
1.5.26 
1.6.6 
1.7.5 
2.5.19 
3.0.4
2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 
Joomla 1.0 
Joom1.l0a 1.5 
Joomla 1.6 
Joomla 1.7 
Joom1.l0a 2.5 
Joomla 3.0 
Joom1.l0a 3.1 
1.0 
1.0.15 
1.5.26 
1.6.6 
1.7.5 
2.5.19 
3.0.4 
3.1.6
2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 
Joomla 1.0 
Joom1.l0a 1.5 
Joomla 1.6 
Joomla 1.7 
Joom1.l0a 2.5 
Joomla 3.0 
Joom1.l0a 3.1 
Joom1.l0a 3.2 
1.0 
1.0.15 
1.5.26 
1.6.6 
1.7.5 
2.5.19 
3.0.4 
3.1.6 
3.2.3
2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 
Joomla 1.0 
Joom1.l0a 1.5 
Joomla 1.6 
Joomla 1.7 
Joom1.l0a 2.5 
Joomla 3.0 
Joom1.l0a 3.1 
Joom1.l0a 3.2 
Joom1.l0a 3.3 
1.0 
1.0.15 
1.5.26 
1.6.6 
1.7.5 
2.5.19 
3.0.4 
3.1.6 
3.2.3
2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 
Joomla 1.0 
Joom1.l0a 1.5 
Joomla 1.6 
Joomla 1.7 
Joom1.l0a 2.5 
Joomla 3.0 
Joom1.l0a 3.1 
Joom1.l0a 3.2 
Joom1.l0a 3.3 
Joom1.l0a 3.4 
1.0.15 
1.5.26 
1.6.6 
1.7.5 
2.5.19 
3.0.4 
3.1.6 
3.2.3
2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 
Joomla 1.0 
Joom1.l0a 1.5 
Joomla 1.6 
Joomla 1.7 
Joom1.l0a 2.5 
Joomla 3.0 
Joom1.l0a 3.1 
Joom1.l0a 3.2 
Joom1.l0a 3.3 
Joom1.l0a 3.4 
Joomla 3.5 
1.0 
1.0.15 
1.5.26 
1.6.6 
1.7.5 
2.5.19 
3.0.4 
3.1.6 
3.2.3
Simplify Things
2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 
Joomla 1.0 
Joom1.l0a 1.5 
Joomla 1.6 
Joomla 1.7 
Joom1.l0a 2.5 
Joomla 3.0 
Joom1.l0a 3.1 
Joom1.l0a 3.2 
Joom1.l0a 3.3 
Joom1.l0a 3.4 
Joomla 3.5
2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 
Joomla 1.0 
Joom1.l0a 1.5 
Joomla 1.6 
Joomla 1.7 
Joom1.l0a 2.5 
Joomla 3.0 
Joom1.l0a 3.1 
Joom1.l0a 3.2 
Joom1.l0a 3.3 
Joom1.l0a 3.4 
Joomla 3.5
2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 
Joomla 1.0 
Joom1.l0a 1.5 
Joomla 1.6 
Joomla 1.7 
Joom1.l0a 2.5 
Joomla 3.0 
Joom1.l0a 3.1 
Joom1.l0a 3.2 
Joom1.l0a 3.3 
Joom1.l0a 3.4 
Joomla 3.5
2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 
Joomla 1.0 
Joom1.l0a 1.5 
Joomla 1.6 
Joomla 1.7 
Joom1.l0a 2.5 
Joomla 3.0 
Joom1.l0a 3.1 
Joom1.l0a 3.2 
Joom1.l0a 3.3 
Joom1.l0a 3.4 
Joomla 3.5
2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 
Joomla 1.0 
Joom1.l0a 1.5 
Joomla 1.6 
Joomla 1.7 
Joom1.l0a 2.5 
Joomla 3.0 
Joom1.l0a 3.1 
Joom1.l0a 3.2 
Joom1.l0a 3.3 
Joom1.l0a 3.4 
Joomla 3.5 
Joomla 1
2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 
Joomla 1.0 
Joom1.l0a 1.5 
Joomla 1.6 
Joomla 1.7 
Joom1.l0a 2.5 
Joomla 3.0 
Joom1.l0a 3.1 
Joom1.l0a 3.2 
Joom1.l0a 3.3 
Joom1.l0a 3.4 
Joomla 3.5 
Joomla 1 
Joomla 2
2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 
Joomla 1.0 
Joom1.l0a 1.5 
Joomla 1.6 
Joomla 1.7 
Joom1.l0a 2.5 
Joomla 3.0 
Joom1.l0a 3.1 
Joom1.l0a 3.2 
Joom1.l0a 3.3 
Joom1.l0a 3.4 
Joomla 3.5 
Joomla 1 
Joomla 2 
Joomla 3
Supported Joomla Versions
2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 
Joomla 1.0 
Joom1.l0a 1.5 
Joomla 1.6 
Joomla 1.7 
Joom1.l0a 2.5 
Joomla 3.0 
Joom1.l0a 3.1 
Joom1.l0a 3.2 
Joom1.l0a 3.3 
Joom1.l0a 3.4 
Joomla 3.5
2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 
Joomla 1.0 
Joom1.l0a 1.5 
Joomla 1.6 
Joomla 1.7 
Joom1.l0a 2.5 
Joomla 3.0 
Joom1.l0a 3.1 
Joom1.l0a 3.2 
Joom1.l0a 3.3 
Joom1.l0a 3.4 
Joomla 3.5
2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 
Joomla 1.0 
Joom1.l0a 1.5 
Joomla 1.6 
Joomla 1.7 
Joom1.l0a 2.5 
Joomla 3.0 
Joom1.l0a 3.1 
Joom1.l0a 3.2 
Joom1.l0a 3.3 
Joom1.l0a 3.4 
Joomla 3.5
Joomla 1
2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 
Joomla 1.0 
Joom1.l0a 1.5 
Joomla 1.6 
Joomla 1.7 
Joom1.l0a 2.5 
Joomla 3.0 
Joom1.l0a 3.1 
Joom1.l0a 3.2 
Joom1.l0a 3.3 
Joom1.l0a 3.4 
Joomla 3.5
Joomla 1 
Unsupported: migrate
Joomla 2
2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 
Joomla 1.0 
Joom1.l0a 1.5 
Joomla 1.6 
Joomla 1.7 
Joom1.l0a 2.5 
Joomla 3.0 
Joom1.l0a 3.1 
Joom1.l0a 3.2 
Joom1.l0a 3.3 
Joom1.l0a 3.4 
Joomla 3.5
Joomla 2 
Use latest version: 2.5.24
Joomla 3
2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 
Joomla 1.0 
Joom1.l0a 1.5 
Joomla 1.6 
Joomla 1.7 
Joom1.l0a 2.5 
Joomla 3.0 
Joom1.l0a 3.1 
Joom1.l0a 3.2 
Joom1.l0a 3.3 
Joom1.l0a 3.4 
Joomla 3.5
Joomla 3 
Use latest version: 3.3.3
Migration. Upgrade. Update.
3.3.3 
Migration.Upgrade.Update
3.3.3 
[major].[minor].[maintenance]
3.0.0 
[major].[minor].[maintenance] 
(Can be incompatible with prior major releases.)
3.3.0 
[major].[minor].[maintenance] 
(Moderate to high level of backward compatibility with previous minor increments.)
3.3.3 
[major].[minor].[maintenance] 
(Fully backward compatible with previous maintenance increments.)
Upgrade Strategy
2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 
Joomla 1.0 
Joom1.l0a 1.5 
Joomla 1.6 
Joomla 1.7 
Joom1.l0a 2.5 
Joomla 3.0 
Joom1.l0a 3.1 
Joom1.l0a 3.2 
Joom1.l0a 3.3 
Joom1.l0a 3.4 
Joomla 3.5
2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 
Joomla 1.0 
Joom1.l0a 1.5 
Joomla 1.6 
Joomla 1.7 
Joom1.l0a 2.5 
Joomla 3.0 
Joom1.l0a 3.1 
Joom1.l0a 3.2 
Joom1.l0a 3.3 
Joom1.l0a 3.4 
Joomla 3.5
2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 
Joomla 1.0 
Joom1.l0a 1.5 
Joomla 1.6 
Joomla 1.7 
Joom1.l0a 2.5 
Joomla 3.0 
Joom1.l0a 3.1 
Joom1.l0a 3.2 
Joom1.l0a 3.3 
Joom1.l0a 3.4 
Joomla 3.5
2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 
Joomla 1.0 
Joom1.l0a 1.5 
Joomla 1.6 
Joomla 1.7 
Joom1.l0a 2.5 
Joomla 3.0 
Joom1.l0a 3.1 
Joom1.l0a 3.2 
Joom1.l0a 3.3 
Joom1.l0a 3.4 
Joomla 3.5
Joomla 1 -> Joomla 2 or 3
Joomla 2 -> Joomla 3
Joomla versions are as simple as
Joomla versions are as simple as 
Joomla 1 = upgrade your site
Joomla versions are as simple as 
Joomla 1 = upgrade your site 
Joomla 2 = use latest version
Joomla versions are as simple as 
Joomla 1 = upgrade your site 
Joomla 2 = use latest version 
Joomla 3 = use latest version
Joomla 1 = upgrade your site
Migrations
Migration Questions
1 : 1 migration?
Frustrations?
Wishes?
Unused?
Extensions Available?
Better Alternatives?
3 Types of Migrations
Easy 
Type: static sites 
Freeze: 1 week or more 
Downtime: not relevant 
Preparations: none, replace when ready
Hard 
Type: dynamic sites 
Freeze: max. 1 week 
Downtime: max. 1 hour 
Preparations: as much as possible
Complicated 
Type: very dynamic & high traffic sites 
Freeze: max. 1 day 
Downtime: each minute costs money 
Preparations: very detailed & tested
Tips for any 
Joomla Migration
-> 
Choose Joomla 3
Test Backup!
Clean up
Empty Trash
Database Fix
Error Reporting Maximum
Same Environment
Test 
Test 
Test 
Test 
Test 
Test
Typical Migration Process
1. Backup
1. Backup 
2. Create copy of website (www.site.com/15)
1. Backup 
2. Create copy of website (www.site.com/15) 
3. Install new Joomla version (www.site.com/3)
1. Backup 
2. Create copy of website (www.site.com/15) 
3. Install new Joomla version (www.site.com/3) 
4. Migrate website data (.com/15 -> .com/3)
1. Backup 
2. Create copy of website (www.site.com/15) 
3. Install new Joomla version (www.site.com/3) 
4. Migrate website data (.com/15 -> .com/3) 
5. Install Joomla 3 version of extensions
1. Backup 
2. Create copy of website (www.site.com/15) 
3. Install new Joomla version (www.site.com/3) 
4. Migrate website data (.com/15 -> .com/3) 
5. Install Joomla 3 version of extensions 
6. Adjust files, like templates & Joomla settings
1. Backup 
2. Create copy of website (www.site.com/15) 
3. Install new Joomla version (www.site.com/3) 
4. Migrate website data (.com/15 -> .com/3) 
5. Install Joomla 3 version of extensions 
6. Adjust files, like templates & Joomla settings 
7. Test result of migration
1. Backup 
2. Create copy of website (www.site.com/15) 
3. Install new Joomla version (www.site.com/3) 
4. Migrate website data (.com/15 -> .com/3) 
5. Install Joomla 3 version of extensions 
6. Adjust files, like templates & Joomla settings 
7. Test result of migration 
8. Publish new website (.com -> .com/old & .com/3 -> .com)
Case: 
Complex Migration Request
Case: 
Complex Migration Request
Case: 
Complex Migration Request 
- Migration within max 1,5 day freeze, max 2 hours 
downtime during evening hours 
- Identical layout, functionality, URLs, menus, articles, etc. 
- In short: the visitor should not see or experience 
differences between Joomla 1.5 and Joomla 2.5 version
1. Backup 
2. Create copy of website (www.site.com/15) 
3. Install new Joomla version (www.site.com/3) 
4. Migrate website data (.com/15 -> .com/3) 
5. Install Joomla 3 version of extensions 
6. Adjust files, like templates & Joomla settings 
7. Test result of migration 
8. Publish new website (.com -> .com/old & .com/3 -> .com)
1500 articles 
650 menu-items 
950 modules 
20+ extensions
Setting Change Example 
Menu-Module 
! 
!
Setting Change Example 
Menu-Module 
! 
vs 
level 
Joomla 1.5 Joomla 2.5 
0-3 1-4
Record Database Changes
Create Custom Script 
www.site.com/migrate.php
Change Modules with ID’s 
223, 294 and 357
Change Modules with ID’s 
223, 294 and 357 
- “startLevel” of module with ID 233 is changed from 2 to 3. 
- “menutype” is added for module with ID 294 
- “You are here” text is set to “hide” for the breadcrumbs 
module with ID 357.
www.site.com/migrate.php 
define('_JEXEC', 1);! 
! 
// Connect with Joomla! 
define('JPATH_BASE', __DIR__);! 
require_once JPATH_BASE . '/includes/defines.php';! 
require_once JPATH_BASE . '/includes/framework.php';! 
! 
// Database connection! 
$db = JFactory::getDBO();
/**! www.site.com/migrate.php 
* Module changes! 
*/! 
! 
// Get the modules that need changes! 
$query = $db->getQuery(true);! 
$query->select('*')! 
!->from('#__modules')! 
!->where('id IN (233,294,357)');! 
$db->setQuery($query);! 
$modules = $db->loadObjectList('id');! 
! 
foreach($modules as $module)! 
{! 
!$module->params = json_decode($module->params);! 
}
www.site.com/migrate.php 
// Change startLevel! 
if ($modules[233]->params->startLevel == 2)! 
{! 
!$modules[233]->params->startLevel = 3;! 
!echo('<strong>Module [233]:</strong> startLevel: 3 <br/>');! 
}
www.site.com/migrate.php 
// Set menutype! 
if (empty($modules[294]->params->menutype))! 
{! 
!$modules[294]->params->menutype = 'mainmenu';! 
!echo('<strong>Module [294]:</strong> menutype: mainmenu <br/ 
>');! 
}
www.site.com/migrate.php 
// Hide breadcrumb "You are here"! 
if (!$modules[357]->params->showHere)! 
{! 
!$modules[357]->params->showHere = 0;! 
!echo('<strong>Module [357]:</strong> showHere: 0 <br/>');! 
}
www.site.com/migrate.php 
// Save new module params! 
foreach($modules as $id=>$module) ! 
{! 
!$params !!= json_encode($module->params);! 
!$mod !!!= new JObject();! 
!$mod->id !!= $id;! 
!$mod->params!= $params;! 
!! 
!$result = $db->updateObject('#__modules', $mod, 'id');! 
}
Correct component specific
Correct component specific 
- set Access to 1 for all items in ZOO
www.site.com/migrate.php 
/**! 
* Component changes! 
*/! 
! 
// ZOO access fixes! 
$query !!= $db->getQuery(true);! 
$fields != array('access=1');! 
$conditions = array('access=0');! 
$query->update($db->quoteName('#__zoo_item'))->set($fields)- 
>where($conditions);! 
$db->setQuery($query);! 
! 
$result = $db->query();! 
echo('<strong>ZOO:</strong> Access set to 1 <br/>');
Custom Script Example 
https://gist.github.com/sanderpotjer/9311435
Clean Joomla 3 Base
Test
Adjust Custom Script
Test
Adjust Custom Script
Test
Adjust Custom Script
Migration Script 
(non code)
10:30 - 11:00 hour 
Migration day kickoff meeting
11:00 - 12:30 hour 
Exact.nl backup maken & compare: 
- Create Backup of Joomla 1.5 version 
- Install locally 
- Compare Backup with version used for preparations 
- Adjust Joomla 2.5 site if needed
11:00 - 12:30 hour 
Joomla 1.5 site preparations: 
- Empty categories trash 
- Empty articles trash 
- Empty menu trash 
- General Check-In
11:00 - 12:30 hour 
Joomla 2.5 site preparations: 
- Create new database with "clean" dataset (without 
exact.nl content data) 
- SP Upgrade configuration 
- Static server files sync between 1.5 site and 2.5 site 
- Publish Joomla 2.5 base version with static files on 
www.exact.nl/25/
Lunch
13:00 - 16:00 hour 
Test migrations 
- Test migraties according "Migration Manual" 
- After test, restore as "Joomla 2.5 site preparation" 
status 
! 
Check result of test migrations [Client] 
- Test migration result and report issues
13:00 - 16:00 hour 
Roll-out fixes 
- In case of issues, improve migration script 
! 
Prepare off-line page 
- Specific page visible during the migration downtime
16:00 - 17:30 hour 
Final opportunity for content changes on live site 
- No content changes after 16:00 hour 
- Administration area restricted 
- Visitors can still use the full functionality of the website, 
form submissions won’t get lost
16:00 - 17:30 hour 
Final test migration 
- Final test migraties according "Migration Manual" 
! 
Final Joomla 2.5 site preparations: 
- Create new database with "clean" dataset 
- Static server files sync between 1.5 site and 2.5 site 
- Publish Joomla 2.5 base version with static files on
Pizza!
19:00 - 19:15 hour 
Final checks 
- Check if Joomla 1.5 site is ready 
- Check if Joomla 2.5 site is ready 
- Check database tables 
- Check if required software & connections are ready 
- Check if hosting provider is ready
19:15 - 19:30 hour 
Migrations www.exact.nl 
- Final migraties according "Migration Manual" 
- During this period www.exact.nl is offline, visitors can’t 
use the website
19:30 - ? : ? hour 
Monitoring of www.exact.nl 
- Monitoring of migrated website 
- Apply small bug-fixes if needed 
- In case of bigger issues a revert of the Joomla 1.5 site 
according the "Emergency Revert Manual" 
- Old Joomla 1.5 version available for reference on 
www.exact.nl/15/
Celebrate!
Celebrate!
Migration 
Manual
1) Set exact.nl (Joomla 1.5) site off-line (+/- 0,5 minute)
2) Back-up Joomla 1.5 site (+/- 5 minutes)
3) SP Upgrade migration (+/- 1 minute) 
Data migration via SP Upgrade extension 
- Users 
- Content 
- Newsfeed 
- Menus 
- Modules
4) Manual tables export, conversion & import (+/- 3 minutes) 
jos_advancedmodules 
jos_exactlog 
jos_exacttracking 
jos_exacttracking_pages 
jos_jdownloads_* 
jos_rseventspro_* 
jos_rsfirewall_* (except config) 
jos_rsform_* 
jos_snippets 
jos_virtuemart_* (except config) 
jos_widgetkit_widget 
jos_zoo_*
5) Manual operations in 2.5 site (+/- 2 minutes) 
- Install Advanced Module Manager 
- Install RSEventsPro 
- Install RSFormPro 
- Install RSFirewall 
- Run VirtueMart Tools -> Update tables 
- Run SP Upgrade 
- Run custom Exact conversion script
5) Manual operations in 2.5 site (+/- 2 minutes) 
- Run Joomla Advanced Search (Finder) indexer 
- Fix Asset Issues with ACL Manager 
- Configure frontend/backend .htaccess files 
- Check memcache configuration 
- Publish obGrapper pipes 
- Clear cache
6) Check result (+/- 2 minutes) 
Check migration result on www.exact.nl/25/
7) Move Joomla 1.5 site (+/- 0,5 minute) 
Move www.exact.nl to www.exact.nl/15/
8) Move Joomla 2.5 site (+/- 0,5 minute) 
Move www.exact.nl/25/ to www.exact.nl/
9) Adjust configuration.php paths (+/- 0,5 minute) 
Adjust the /tmp/ and /log/ folder paths in 
www.exact.nl/configuration.php and 
www.exact.nl/15/configuration.php
10) Set exact.nl (Joomla 2.5) site on-line (+/- 0,5 minute)
Emergency 
Revert Manual
1) Set exact.nl (Joomla 2.5) site off-line (+/- 0,5 minute)
2) Move Joomla 2.5 site (+/- 0,5 minute) 
Move www.exact.nl to www.exact.nl/25/
3) Move Joomla 1.5 site (+/- 0,5 minute) 
Move www.exact.nl/15/ to www.exact.nl/
4) Adjust configuration.php paths (+/- 0,5 minute) 
Adjust the /tmp/ and /log/ folder paths in 
www.exact.nl/configuration.php and 
www.exact.nl/25/configuration.php
5) Set exact.nl (Joomla 1.5) site on-line (+/- 0,5 minute)
Case Results: 
Complex Migration Request 
! 
freeze & downtime: 6 minutes
Case Results: 
Complex Migration Request 
! 
freeze & downtime: 6 minutes 
preparation time: 2-3 weeks
Resources 
Article: “Complex Joomla! 1.5 Migration With Minimal Downtime” 
http://magazine.joomla.org/issues/issue-mar-2014/item/1794-complex-joomla-15-migration-with-minimal-downtime 
! 
Custom Migration Script Example 
https://gist.github.com/sanderpotjer/9311435 
! 
Presentation slides 
http://sanderpotjer.nl
Complex Joomla! Migrations

Mais conteúdo relacionado

Semelhante a Complex Joomla! Migrations

Joomla2 5-afirstlook-120214054019-phpapp01
Joomla2 5-afirstlook-120214054019-phpapp01Joomla2 5-afirstlook-120214054019-phpapp01
Joomla2 5-afirstlook-120214054019-phpapp01
Deepak Sangramsingh
 

Semelhante a Complex Joomla! Migrations (20)

Joomla 2 5 - A Preview
Joomla 2 5 - A PreviewJoomla 2 5 - A Preview
Joomla 2 5 - A Preview
 
Template changes for Joomla 1.6
Template changes for Joomla 1.6Template changes for Joomla 1.6
Template changes for Joomla 1.6
 
Joomladay UK - Joomla! Where Are We Now
Joomladay UK - Joomla! Where Are We NowJoomladay UK - Joomla! Where Are We Now
Joomladay UK - Joomla! Where Are We Now
 
Joomla Tutorial: Joomla 2.5 a first look
Joomla Tutorial: Joomla 2.5 a first lookJoomla Tutorial: Joomla 2.5 a first look
Joomla Tutorial: Joomla 2.5 a first look
 
Joomla2 5-afirstlook-120214054019-phpapp01
Joomla2 5-afirstlook-120214054019-phpapp01Joomla2 5-afirstlook-120214054019-phpapp01
Joomla2 5-afirstlook-120214054019-phpapp01
 
Upgrading Joomla 2.5 to Joomla 3
Upgrading Joomla 2.5 to Joomla 3Upgrading Joomla 2.5 to Joomla 3
Upgrading Joomla 2.5 to Joomla 3
 
Joomla!Day Poland 2013 - Joomla and Open Source - How it works and how can I ...
Joomla!Day Poland 2013 - Joomla and Open Source - How it works and how can I ...Joomla!Day Poland 2013 - Joomla and Open Source - How it works and how can I ...
Joomla!Day Poland 2013 - Joomla and Open Source - How it works and how can I ...
 
JoomlaDay Chicago 2017 Keynote Address
JoomlaDay Chicago 2017 Keynote AddressJoomlaDay Chicago 2017 Keynote Address
JoomlaDay Chicago 2017 Keynote Address
 
Migrating from Joomla 1.5 to Joomla 2.5
Migrating from Joomla 1.5 to Joomla 2.5Migrating from Joomla 1.5 to Joomla 2.5
Migrating from Joomla 1.5 to Joomla 2.5
 
JoomlaChicago - Loop - February 2012 Presentation
JoomlaChicago - Loop - February 2012 PresentationJoomlaChicago - Loop - February 2012 Presentation
JoomlaChicago - Loop - February 2012 Presentation
 
Joomladay Switzerland - Joomla! 1.5 and roadmap to future versions
Joomladay Switzerland - Joomla! 1.5 and roadmap to future versionsJoomladay Switzerland - Joomla! 1.5 and roadmap to future versions
Joomladay Switzerland - Joomla! 1.5 and roadmap to future versions
 
Joomla - CMS
Joomla - CMSJoomla - CMS
Joomla - CMS
 
Molajo - Joomla based distributions
Molajo - Joomla based distributionsMolajo - Joomla based distributions
Molajo - Joomla based distributions
 
State of Joomla! - keynote at Joomla!Day Minnesota 2015
State of Joomla! - keynote at Joomla!Day Minnesota 2015State of Joomla! - keynote at Joomla!Day Minnesota 2015
State of Joomla! - keynote at Joomla!Day Minnesota 2015
 
Quick introduction to joomla
Quick introduction to joomlaQuick introduction to joomla
Quick introduction to joomla
 
FAQ's in Joomla 2.5
FAQ's in Joomla 2.5FAQ's in Joomla 2.5
FAQ's in Joomla 2.5
 
JSN Mico Configuration Manual
JSN Mico Configuration ManualJSN Mico Configuration Manual
JSN Mico Configuration Manual
 
Joomla Website Development Company
Joomla Website Development CompanyJoomla Website Development Company
Joomla Website Development Company
 
Joomla 3 and Beyond
Joomla 3 and BeyondJoomla 3 and Beyond
Joomla 3 and Beyond
 
Bootcamp Lucerne, CH 2008 - Migration
Bootcamp Lucerne, CH 2008 -  MigrationBootcamp Lucerne, CH 2008 -  Migration
Bootcamp Lucerne, CH 2008 - Migration
 

Mais de Sander Potjer

Mais de Sander Potjer (20)

Daarom Joomla! - Makkelijk content publiceren
Daarom Joomla! - Makkelijk content publicerenDaarom Joomla! - Makkelijk content publiceren
Daarom Joomla! - Makkelijk content publiceren
 
Daarom Joomla! - Inspiratie uit de praktijk
Daarom Joomla! - Inspiratie uit de praktijkDaarom Joomla! - Inspiratie uit de praktijk
Daarom Joomla! - Inspiratie uit de praktijk
 
Daarom Joomla! - Een fantastische basis
Daarom Joomla! - Een fantastische basisDaarom Joomla! - Een fantastische basis
Daarom Joomla! - Een fantastische basis
 
Performance budget @ Joomla! Performance Expert Sessie
Performance budget @ Joomla! Performance Expert SessiePerformance budget @ Joomla! Performance Expert Sessie
Performance budget @ Joomla! Performance Expert Sessie
 
Technieken & tools @ Joomla! Performance Expert Sessie
Technieken & tools @ Joomla! Performance Expert SessieTechnieken & tools @ Joomla! Performance Expert Sessie
Technieken & tools @ Joomla! Performance Expert Sessie
 
CDN @ Joomla! Performance Expert Sessie
CDN @ Joomla! Performance Expert SessieCDN @ Joomla! Performance Expert Sessie
CDN @ Joomla! Performance Expert Sessie
 
Proxy caching @ Joomla! Performance Expert Sessie
Proxy caching @ Joomla! Performance Expert SessieProxy caching @ Joomla! Performance Expert Sessie
Proxy caching @ Joomla! Performance Expert Sessie
 
Server performance @ Joomla! Performance Expert Sessie
Server performance @ Joomla! Performance Expert SessieServer performance @ Joomla! Performance Expert Sessie
Server performance @ Joomla! Performance Expert Sessie
 
.htaccess performance @ Joomla! Performance Expert Sessie
.htaccess performance @ Joomla! Performance Expert Sessie.htaccess performance @ Joomla! Performance Expert Sessie
.htaccess performance @ Joomla! Performance Expert Sessie
 
Google AMP @ Joomla! Performance Expert Sessie
Google AMP @ Joomla! Performance Expert SessieGoogle AMP @ Joomla! Performance Expert Sessie
Google AMP @ Joomla! Performance Expert Sessie
 
Optimaliseer afbeeldingen @ Joomla! Performance Expert Sessie
Optimaliseer afbeeldingen @ Joomla! Performance Expert SessieOptimaliseer afbeeldingen @ Joomla! Performance Expert Sessie
Optimaliseer afbeeldingen @ Joomla! Performance Expert Sessie
 
Optimalisatie plugins @ Joomla! Performance Expert Sessie
Optimalisatie plugins @ Joomla! Performance Expert SessieOptimalisatie plugins @ Joomla! Performance Expert Sessie
Optimalisatie plugins @ Joomla! Performance Expert Sessie
 
Cache handlers @ Joomla! Performance Expert Sessie
Cache handlers @ Joomla! Performance Expert SessieCache handlers @ Joomla! Performance Expert Sessie
Cache handlers @ Joomla! Performance Expert Sessie
 
Performance & Joomla! core @ Joomla! Performance Expert Sessie
Performance & Joomla! core @ Joomla! Performance Expert SessiePerformance & Joomla! core @ Joomla! Performance Expert Sessie
Performance & Joomla! core @ Joomla! Performance Expert Sessie
 
Joomla! First - JoomlaDagen 2017 #jd17nl
Joomla! First - JoomlaDagen 2017 #jd17nlJoomla! First - JoomlaDagen 2017 #jd17nl
Joomla! First - JoomlaDagen 2017 #jd17nl
 
Complexe pagina's gebruiksvriendelijk (Joomla Page Builders)
Complexe pagina's gebruiksvriendelijk (Joomla Page Builders)Complexe pagina's gebruiksvriendelijk (Joomla Page Builders)
Complexe pagina's gebruiksvriendelijk (Joomla Page Builders)
 
Performance & SEO - Joomla SEO Expert Sessie
Performance & SEO - Joomla SEO Expert SessiePerformance & SEO - Joomla SEO Expert Sessie
Performance & SEO - Joomla SEO Expert Sessie
 
Social Media & SEO - Joomla SEO Expert Sessie
Social Media & SEO - Joomla SEO Expert SessieSocial Media & SEO - Joomla SEO Expert Sessie
Social Media & SEO - Joomla SEO Expert Sessie
 
Joomla 3.6: nieuwe router - Joomla SEO Expert Sessie
Joomla 3.6: nieuwe router - Joomla SEO Expert SessieJoomla 3.6: nieuwe router - Joomla SEO Expert Sessie
Joomla 3.6: nieuwe router - Joomla SEO Expert Sessie
 
SEO Audit - Joomla SEO Expert Sessie
SEO Audit - Joomla SEO Expert SessieSEO Audit - Joomla SEO Expert Sessie
SEO Audit - Joomla SEO Expert Sessie
 

Último

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 

Complex Joomla! Migrations

  • 1. Complex Joomla! Migrations JoomlaDay Deutschland 2014 Sander Potjer - @sanderpotjer - Joomla! Community Leadership Team
  • 2. Sander Potjer ! Involved in the local Dutch Joomla community Joomla Community Leadership Team (CLT) member Company: Perfect Web Team ACL Manager developer E-mail: sander.potjer@community.joomla.org
  • 3. Sander Potjer ! Involved in the local Dutch Joomla community Joomla Community Leadership Team (CLT) member Company: Perfect Web Team ACL Manager developer E-mail: sander.potjer@community.joomla.org Slides: www.sanderpotjer.nl
  • 4.
  • 9. 3.3.3 [major].[minor].[maintenance] (An increment of the major number generally indicates a major rework or rewrite of the code base)
  • 10. 3.3.3 [major].[minor].[maintenance] (An increment of the minor number usually indicates a significant change in functionality.)
  • 11. 3.3.3 [major].[minor].[maintenance] (An increment of the maintenance number usually indicates bug fixing within the minor release and possibly small enhancements and limited new features.)
  • 15. 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016
  • 16. 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 Joomla 1.0 1.0 1.0.15
  • 17. 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 Joomla 1.0 Joom1.l0a 1.5 1.0.15 1.5.26
  • 18. 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 Joomla 1.0 Joom1.l0a 1.5 Joomla 1.6 1.0.15 1.5.26 1.6.6
  • 19. 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 Joomla 1.0 Joom1.l0a 1.5 Joomla 1.6 Joomla 1.7 1.0 1.0.15 1.5.26 1.6.6 1.7.5
  • 20. 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 Joomla 1.0 Joom1.l0a 1.5 Joomla 1.6 Joomla 1.7 Joom1.l0a 2.5 1.0.15 1.5.26 1.6.6 1.7.5 2.5.19
  • 21. 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 Joomla 1.0 Joom1.l0a 1.5 Joomla 1.6 Joomla 1.7 Joom1.l0a 2.5 Joomla 3.0 1.0 1.0.15 1.5.26 1.6.6 1.7.5 2.5.19 3.0.4
  • 22. 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 Joomla 1.0 Joom1.l0a 1.5 Joomla 1.6 Joomla 1.7 Joom1.l0a 2.5 Joomla 3.0 Joom1.l0a 3.1 1.0 1.0.15 1.5.26 1.6.6 1.7.5 2.5.19 3.0.4 3.1.6
  • 23. 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 Joomla 1.0 Joom1.l0a 1.5 Joomla 1.6 Joomla 1.7 Joom1.l0a 2.5 Joomla 3.0 Joom1.l0a 3.1 Joom1.l0a 3.2 1.0 1.0.15 1.5.26 1.6.6 1.7.5 2.5.19 3.0.4 3.1.6 3.2.3
  • 24. 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 Joomla 1.0 Joom1.l0a 1.5 Joomla 1.6 Joomla 1.7 Joom1.l0a 2.5 Joomla 3.0 Joom1.l0a 3.1 Joom1.l0a 3.2 Joom1.l0a 3.3 1.0 1.0.15 1.5.26 1.6.6 1.7.5 2.5.19 3.0.4 3.1.6 3.2.3
  • 25. 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 Joomla 1.0 Joom1.l0a 1.5 Joomla 1.6 Joomla 1.7 Joom1.l0a 2.5 Joomla 3.0 Joom1.l0a 3.1 Joom1.l0a 3.2 Joom1.l0a 3.3 Joom1.l0a 3.4 1.0.15 1.5.26 1.6.6 1.7.5 2.5.19 3.0.4 3.1.6 3.2.3
  • 26. 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 Joomla 1.0 Joom1.l0a 1.5 Joomla 1.6 Joomla 1.7 Joom1.l0a 2.5 Joomla 3.0 Joom1.l0a 3.1 Joom1.l0a 3.2 Joom1.l0a 3.3 Joom1.l0a 3.4 Joomla 3.5 1.0 1.0.15 1.5.26 1.6.6 1.7.5 2.5.19 3.0.4 3.1.6 3.2.3
  • 28. 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 Joomla 1.0 Joom1.l0a 1.5 Joomla 1.6 Joomla 1.7 Joom1.l0a 2.5 Joomla 3.0 Joom1.l0a 3.1 Joom1.l0a 3.2 Joom1.l0a 3.3 Joom1.l0a 3.4 Joomla 3.5
  • 29. 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 Joomla 1.0 Joom1.l0a 1.5 Joomla 1.6 Joomla 1.7 Joom1.l0a 2.5 Joomla 3.0 Joom1.l0a 3.1 Joom1.l0a 3.2 Joom1.l0a 3.3 Joom1.l0a 3.4 Joomla 3.5
  • 30. 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 Joomla 1.0 Joom1.l0a 1.5 Joomla 1.6 Joomla 1.7 Joom1.l0a 2.5 Joomla 3.0 Joom1.l0a 3.1 Joom1.l0a 3.2 Joom1.l0a 3.3 Joom1.l0a 3.4 Joomla 3.5
  • 31. 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 Joomla 1.0 Joom1.l0a 1.5 Joomla 1.6 Joomla 1.7 Joom1.l0a 2.5 Joomla 3.0 Joom1.l0a 3.1 Joom1.l0a 3.2 Joom1.l0a 3.3 Joom1.l0a 3.4 Joomla 3.5
  • 32. 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 Joomla 1.0 Joom1.l0a 1.5 Joomla 1.6 Joomla 1.7 Joom1.l0a 2.5 Joomla 3.0 Joom1.l0a 3.1 Joom1.l0a 3.2 Joom1.l0a 3.3 Joom1.l0a 3.4 Joomla 3.5 Joomla 1
  • 33. 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 Joomla 1.0 Joom1.l0a 1.5 Joomla 1.6 Joomla 1.7 Joom1.l0a 2.5 Joomla 3.0 Joom1.l0a 3.1 Joom1.l0a 3.2 Joom1.l0a 3.3 Joom1.l0a 3.4 Joomla 3.5 Joomla 1 Joomla 2
  • 34. 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 Joomla 1.0 Joom1.l0a 1.5 Joomla 1.6 Joomla 1.7 Joom1.l0a 2.5 Joomla 3.0 Joom1.l0a 3.1 Joom1.l0a 3.2 Joom1.l0a 3.3 Joom1.l0a 3.4 Joomla 3.5 Joomla 1 Joomla 2 Joomla 3
  • 36. 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 Joomla 1.0 Joom1.l0a 1.5 Joomla 1.6 Joomla 1.7 Joom1.l0a 2.5 Joomla 3.0 Joom1.l0a 3.1 Joom1.l0a 3.2 Joom1.l0a 3.3 Joom1.l0a 3.4 Joomla 3.5
  • 37. 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 Joomla 1.0 Joom1.l0a 1.5 Joomla 1.6 Joomla 1.7 Joom1.l0a 2.5 Joomla 3.0 Joom1.l0a 3.1 Joom1.l0a 3.2 Joom1.l0a 3.3 Joom1.l0a 3.4 Joomla 3.5
  • 38. 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 Joomla 1.0 Joom1.l0a 1.5 Joomla 1.6 Joomla 1.7 Joom1.l0a 2.5 Joomla 3.0 Joom1.l0a 3.1 Joom1.l0a 3.2 Joom1.l0a 3.3 Joom1.l0a 3.4 Joomla 3.5
  • 40. 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 Joomla 1.0 Joom1.l0a 1.5 Joomla 1.6 Joomla 1.7 Joom1.l0a 2.5 Joomla 3.0 Joom1.l0a 3.1 Joom1.l0a 3.2 Joom1.l0a 3.3 Joom1.l0a 3.4 Joomla 3.5
  • 43. 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 Joomla 1.0 Joom1.l0a 1.5 Joomla 1.6 Joomla 1.7 Joom1.l0a 2.5 Joomla 3.0 Joom1.l0a 3.1 Joom1.l0a 3.2 Joom1.l0a 3.3 Joom1.l0a 3.4 Joomla 3.5
  • 44. Joomla 2 Use latest version: 2.5.24
  • 46. 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 Joomla 1.0 Joom1.l0a 1.5 Joomla 1.6 Joomla 1.7 Joom1.l0a 2.5 Joomla 3.0 Joom1.l0a 3.1 Joom1.l0a 3.2 Joom1.l0a 3.3 Joom1.l0a 3.4 Joomla 3.5
  • 47. Joomla 3 Use latest version: 3.3.3
  • 51. 3.0.0 [major].[minor].[maintenance] (Can be incompatible with prior major releases.)
  • 52. 3.3.0 [major].[minor].[maintenance] (Moderate to high level of backward compatibility with previous minor increments.)
  • 53. 3.3.3 [major].[minor].[maintenance] (Fully backward compatible with previous maintenance increments.)
  • 55. 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 Joomla 1.0 Joom1.l0a 1.5 Joomla 1.6 Joomla 1.7 Joom1.l0a 2.5 Joomla 3.0 Joom1.l0a 3.1 Joom1.l0a 3.2 Joom1.l0a 3.3 Joom1.l0a 3.4 Joomla 3.5
  • 56. 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 Joomla 1.0 Joom1.l0a 1.5 Joomla 1.6 Joomla 1.7 Joom1.l0a 2.5 Joomla 3.0 Joom1.l0a 3.1 Joom1.l0a 3.2 Joom1.l0a 3.3 Joom1.l0a 3.4 Joomla 3.5
  • 57.
  • 58. 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 Joomla 1.0 Joom1.l0a 1.5 Joomla 1.6 Joomla 1.7 Joom1.l0a 2.5 Joomla 3.0 Joom1.l0a 3.1 Joom1.l0a 3.2 Joom1.l0a 3.3 Joom1.l0a 3.4 Joomla 3.5
  • 59.
  • 60. 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 Joomla 1.0 Joom1.l0a 1.5 Joomla 1.6 Joomla 1.7 Joom1.l0a 2.5 Joomla 3.0 Joom1.l0a 3.1 Joom1.l0a 3.2 Joom1.l0a 3.3 Joom1.l0a 3.4 Joomla 3.5
  • 61. Joomla 1 -> Joomla 2 or 3
  • 62.
  • 63.
  • 64.
  • 65. Joomla 2 -> Joomla 3
  • 66.
  • 67.
  • 68.
  • 69.
  • 70. Joomla versions are as simple as
  • 71. Joomla versions are as simple as Joomla 1 = upgrade your site
  • 72. Joomla versions are as simple as Joomla 1 = upgrade your site Joomla 2 = use latest version
  • 73. Joomla versions are as simple as Joomla 1 = upgrade your site Joomla 2 = use latest version Joomla 3 = use latest version
  • 74. Joomla 1 = upgrade your site
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 83. 1 : 1 migration?
  • 84.
  • 90. 3 Types of Migrations
  • 91. Easy Type: static sites Freeze: 1 week or more Downtime: not relevant Preparations: none, replace when ready
  • 92. Hard Type: dynamic sites Freeze: max. 1 week Downtime: max. 1 hour Preparations: as much as possible
  • 93. Complicated Type: very dynamic & high traffic sites Freeze: max. 1 day Downtime: each minute costs money Preparations: very detailed & tested
  • 94. Tips for any Joomla Migration
  • 96.
  • 100.
  • 102.
  • 105. Test Test Test Test Test Test
  • 106.
  • 109. 1. Backup 2. Create copy of website (www.site.com/15)
  • 110. 1. Backup 2. Create copy of website (www.site.com/15) 3. Install new Joomla version (www.site.com/3)
  • 111. 1. Backup 2. Create copy of website (www.site.com/15) 3. Install new Joomla version (www.site.com/3) 4. Migrate website data (.com/15 -> .com/3)
  • 112. 1. Backup 2. Create copy of website (www.site.com/15) 3. Install new Joomla version (www.site.com/3) 4. Migrate website data (.com/15 -> .com/3) 5. Install Joomla 3 version of extensions
  • 113. 1. Backup 2. Create copy of website (www.site.com/15) 3. Install new Joomla version (www.site.com/3) 4. Migrate website data (.com/15 -> .com/3) 5. Install Joomla 3 version of extensions 6. Adjust files, like templates & Joomla settings
  • 114. 1. Backup 2. Create copy of website (www.site.com/15) 3. Install new Joomla version (www.site.com/3) 4. Migrate website data (.com/15 -> .com/3) 5. Install Joomla 3 version of extensions 6. Adjust files, like templates & Joomla settings 7. Test result of migration
  • 115. 1. Backup 2. Create copy of website (www.site.com/15) 3. Install new Joomla version (www.site.com/3) 4. Migrate website data (.com/15 -> .com/3) 5. Install Joomla 3 version of extensions 6. Adjust files, like templates & Joomla settings 7. Test result of migration 8. Publish new website (.com -> .com/old & .com/3 -> .com)
  • 118. Case: Complex Migration Request - Migration within max 1,5 day freeze, max 2 hours downtime during evening hours - Identical layout, functionality, URLs, menus, articles, etc. - In short: the visitor should not see or experience differences between Joomla 1.5 and Joomla 2.5 version
  • 119. 1. Backup 2. Create copy of website (www.site.com/15) 3. Install new Joomla version (www.site.com/3) 4. Migrate website data (.com/15 -> .com/3) 5. Install Joomla 3 version of extensions 6. Adjust files, like templates & Joomla settings 7. Test result of migration 8. Publish new website (.com -> .com/old & .com/3 -> .com)
  • 120. 1500 articles 650 menu-items 950 modules 20+ extensions
  • 121. Setting Change Example Menu-Module ! !
  • 122. Setting Change Example Menu-Module ! vs level Joomla 1.5 Joomla 2.5 0-3 1-4
  • 124. Create Custom Script www.site.com/migrate.php
  • 125. Change Modules with ID’s 223, 294 and 357
  • 126. Change Modules with ID’s 223, 294 and 357 - “startLevel” of module with ID 233 is changed from 2 to 3. - “menutype” is added for module with ID 294 - “You are here” text is set to “hide” for the breadcrumbs module with ID 357.
  • 127. www.site.com/migrate.php define('_JEXEC', 1);! ! // Connect with Joomla! define('JPATH_BASE', __DIR__);! require_once JPATH_BASE . '/includes/defines.php';! require_once JPATH_BASE . '/includes/framework.php';! ! // Database connection! $db = JFactory::getDBO();
  • 128. /**! www.site.com/migrate.php * Module changes! */! ! // Get the modules that need changes! $query = $db->getQuery(true);! $query->select('*')! !->from('#__modules')! !->where('id IN (233,294,357)');! $db->setQuery($query);! $modules = $db->loadObjectList('id');! ! foreach($modules as $module)! {! !$module->params = json_decode($module->params);! }
  • 129. www.site.com/migrate.php // Change startLevel! if ($modules[233]->params->startLevel == 2)! {! !$modules[233]->params->startLevel = 3;! !echo('<strong>Module [233]:</strong> startLevel: 3 <br/>');! }
  • 130. www.site.com/migrate.php // Set menutype! if (empty($modules[294]->params->menutype))! {! !$modules[294]->params->menutype = 'mainmenu';! !echo('<strong>Module [294]:</strong> menutype: mainmenu <br/ >');! }
  • 131. www.site.com/migrate.php // Hide breadcrumb "You are here"! if (!$modules[357]->params->showHere)! {! !$modules[357]->params->showHere = 0;! !echo('<strong>Module [357]:</strong> showHere: 0 <br/>');! }
  • 132. www.site.com/migrate.php // Save new module params! foreach($modules as $id=>$module) ! {! !$params !!= json_encode($module->params);! !$mod !!!= new JObject();! !$mod->id !!= $id;! !$mod->params!= $params;! !! !$result = $db->updateObject('#__modules', $mod, 'id');! }
  • 134. Correct component specific - set Access to 1 for all items in ZOO
  • 135. www.site.com/migrate.php /**! * Component changes! */! ! // ZOO access fixes! $query !!= $db->getQuery(true);! $fields != array('access=1');! $conditions = array('access=0');! $query->update($db->quoteName('#__zoo_item'))->set($fields)- >where($conditions);! $db->setQuery($query);! ! $result = $db->query();! echo('<strong>ZOO:</strong> Access set to 1 <br/>');
  • 136. Custom Script Example https://gist.github.com/sanderpotjer/9311435
  • 137. Clean Joomla 3 Base
  • 138. Test
  • 140. Test
  • 142. Test
  • 145.
  • 146. 10:30 - 11:00 hour Migration day kickoff meeting
  • 147. 11:00 - 12:30 hour Exact.nl backup maken & compare: - Create Backup of Joomla 1.5 version - Install locally - Compare Backup with version used for preparations - Adjust Joomla 2.5 site if needed
  • 148. 11:00 - 12:30 hour Joomla 1.5 site preparations: - Empty categories trash - Empty articles trash - Empty menu trash - General Check-In
  • 149. 11:00 - 12:30 hour Joomla 2.5 site preparations: - Create new database with "clean" dataset (without exact.nl content data) - SP Upgrade configuration - Static server files sync between 1.5 site and 2.5 site - Publish Joomla 2.5 base version with static files on www.exact.nl/25/
  • 150. Lunch
  • 151. 13:00 - 16:00 hour Test migrations - Test migraties according "Migration Manual" - After test, restore as "Joomla 2.5 site preparation" status ! Check result of test migrations [Client] - Test migration result and report issues
  • 152. 13:00 - 16:00 hour Roll-out fixes - In case of issues, improve migration script ! Prepare off-line page - Specific page visible during the migration downtime
  • 153. 16:00 - 17:30 hour Final opportunity for content changes on live site - No content changes after 16:00 hour - Administration area restricted - Visitors can still use the full functionality of the website, form submissions won’t get lost
  • 154. 16:00 - 17:30 hour Final test migration - Final test migraties according "Migration Manual" ! Final Joomla 2.5 site preparations: - Create new database with "clean" dataset - Static server files sync between 1.5 site and 2.5 site - Publish Joomla 2.5 base version with static files on
  • 155. Pizza!
  • 156. 19:00 - 19:15 hour Final checks - Check if Joomla 1.5 site is ready - Check if Joomla 2.5 site is ready - Check database tables - Check if required software & connections are ready - Check if hosting provider is ready
  • 157. 19:15 - 19:30 hour Migrations www.exact.nl - Final migraties according "Migration Manual" - During this period www.exact.nl is offline, visitors can’t use the website
  • 158. 19:30 - ? : ? hour Monitoring of www.exact.nl - Monitoring of migrated website - Apply small bug-fixes if needed - In case of bigger issues a revert of the Joomla 1.5 site according the "Emergency Revert Manual" - Old Joomla 1.5 version available for reference on www.exact.nl/15/
  • 162. 1) Set exact.nl (Joomla 1.5) site off-line (+/- 0,5 minute)
  • 163. 2) Back-up Joomla 1.5 site (+/- 5 minutes)
  • 164. 3) SP Upgrade migration (+/- 1 minute) Data migration via SP Upgrade extension - Users - Content - Newsfeed - Menus - Modules
  • 165. 4) Manual tables export, conversion & import (+/- 3 minutes) jos_advancedmodules jos_exactlog jos_exacttracking jos_exacttracking_pages jos_jdownloads_* jos_rseventspro_* jos_rsfirewall_* (except config) jos_rsform_* jos_snippets jos_virtuemart_* (except config) jos_widgetkit_widget jos_zoo_*
  • 166. 5) Manual operations in 2.5 site (+/- 2 minutes) - Install Advanced Module Manager - Install RSEventsPro - Install RSFormPro - Install RSFirewall - Run VirtueMart Tools -> Update tables - Run SP Upgrade - Run custom Exact conversion script
  • 167. 5) Manual operations in 2.5 site (+/- 2 minutes) - Run Joomla Advanced Search (Finder) indexer - Fix Asset Issues with ACL Manager - Configure frontend/backend .htaccess files - Check memcache configuration - Publish obGrapper pipes - Clear cache
  • 168. 6) Check result (+/- 2 minutes) Check migration result on www.exact.nl/25/
  • 169. 7) Move Joomla 1.5 site (+/- 0,5 minute) Move www.exact.nl to www.exact.nl/15/
  • 170. 8) Move Joomla 2.5 site (+/- 0,5 minute) Move www.exact.nl/25/ to www.exact.nl/
  • 171. 9) Adjust configuration.php paths (+/- 0,5 minute) Adjust the /tmp/ and /log/ folder paths in www.exact.nl/configuration.php and www.exact.nl/15/configuration.php
  • 172. 10) Set exact.nl (Joomla 2.5) site on-line (+/- 0,5 minute)
  • 174. 1) Set exact.nl (Joomla 2.5) site off-line (+/- 0,5 minute)
  • 175. 2) Move Joomla 2.5 site (+/- 0,5 minute) Move www.exact.nl to www.exact.nl/25/
  • 176. 3) Move Joomla 1.5 site (+/- 0,5 minute) Move www.exact.nl/15/ to www.exact.nl/
  • 177. 4) Adjust configuration.php paths (+/- 0,5 minute) Adjust the /tmp/ and /log/ folder paths in www.exact.nl/configuration.php and www.exact.nl/25/configuration.php
  • 178. 5) Set exact.nl (Joomla 1.5) site on-line (+/- 0,5 minute)
  • 179. Case Results: Complex Migration Request ! freeze & downtime: 6 minutes
  • 180. Case Results: Complex Migration Request ! freeze & downtime: 6 minutes preparation time: 2-3 weeks
  • 181. Resources Article: “Complex Joomla! 1.5 Migration With Minimal Downtime” http://magazine.joomla.org/issues/issue-mar-2014/item/1794-complex-joomla-15-migration-with-minimal-downtime ! Custom Migration Script Example https://gist.github.com/sanderpotjer/9311435 ! Presentation slides http://sanderpotjer.nl