182
JoomlaDay Deutschland 2014 Sander Potjer - @sanderpotjer - Joomla! Community Leadership Team Complex Joomla! Migrations

Complex Joomla! Migrations

Embed Size (px)

DESCRIPTION

Joomla version numbering explained, best Joomla migration practices, tips and how to handle complex Joomla Migrations.

Citation preview

Page 1: Complex Joomla! Migrations

JoomlaDay Deutschland 2014 Sander Potjer - @sanderpotjer - Joomla! Community Leadership Team

Complex Joomla! Migrations

Page 2: Complex Joomla! Migrations

Sander Potjer !

Involved in the local Dutch Joomla community

Joomla Community Leadership Team (CLT) member

Company: Perfect Web Team

ACL Manager developer

E-mail: [email protected]

Page 3: Complex Joomla! Migrations

Sander Potjer !

Involved in the local Dutch Joomla community

Joomla Community Leadership Team (CLT) member

Company: Perfect Web Team

ACL Manager developer

E-mail: [email protected]

Slides: www.sanderpotjer.nl

Page 4: Complex Joomla! Migrations
Page 5: Complex Joomla! Migrations

Complex Joomla Migrations

Page 6: Complex Joomla! Migrations

Joomla Version Number

Page 7: Complex Joomla! Migrations

3.3.3

Page 8: Complex Joomla! Migrations

3.3.3 [major].[minor].[maintenance]

Page 9: Complex Joomla! Migrations

3.3.3 [major].[minor].[maintenance]

(An increment of the major number generally indicates a major rework or rewrite of the code base)

Page 10: Complex Joomla! Migrations

3.3.3 [major].[minor].[maintenance]

(An increment of the minor number usually indicates a significant change in functionality.)

Page 11: Complex Joomla! Migrations

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.)

Page 12: Complex Joomla! Migrations

2.5.2 vs 2.5.19

Page 13: Complex Joomla! Migrations

2.5.2 < 2.5.19

Page 14: Complex Joomla! Migrations

Joomla Version History

Page 15: Complex Joomla! Migrations

2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016

Page 16: Complex Joomla! Migrations

2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016

Joomla 1.0 1.0

1.0.15

Page 17: Complex Joomla! Migrations

2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016

Joomla 1.0 1.0Joomla 1.5

1.0.15

1.5.26

Page 18: Complex Joomla! Migrations

2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016

Joomla 1.0 1.0Joomla 1.5

Joomla 1.6

1.0.15

1.5.26

1.6.6

Page 19: Complex Joomla! Migrations

2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016

Joomla 1.0 1.0Joomla 1.5

Joomla 1.6

Joomla 1.7 1.0

1.0.15

1.5.26

1.6.6

1.7.5

Page 20: Complex Joomla! Migrations

2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016

Joomla 1.0 1.0Joomla 1.5

Joomla 1.6

Joomla 1.7 1.0Joomla 2.5

1.0.15

1.5.26

1.6.6

1.7.5

2.5.19

Page 21: Complex Joomla! Migrations

2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016

Joomla 1.0 1.0Joomla 1.5

Joomla 1.6

Joomla 1.7 1.0Joomla 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

Page 22: Complex Joomla! Migrations

2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016

Joomla 1.0 1.0Joomla 1.5

Joomla 1.6

Joomla 1.7 1.0Joomla 2.5

Joomla 3.0 1.0Joomla 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

Page 23: Complex Joomla! Migrations

2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016

Joomla 1.0 1.0Joomla 1.5

Joomla 1.6

Joomla 1.7 1.0Joomla 2.5

Joomla 3.0 1.0Joomla 3.1 1.0Joomla 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

Page 24: Complex Joomla! Migrations

2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016

Joomla 1.0 1.0Joomla 1.5

Joomla 1.6

Joomla 1.7 1.0Joomla 2.5

Joomla 3.0 1.0Joomla 3.1 1.0Joomla 3.2 1.0Joomla 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

Page 25: Complex Joomla! Migrations

2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016

Joomla 1.0 1.0Joomla 1.5

Joomla 1.6

Joomla 1.7 1.0Joomla 2.5

Joomla 3.0 1.0Joomla 3.1 1.0Joomla 3.2 1.0Joomla 3.3 1.0Joomla 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

Page 26: Complex Joomla! Migrations

2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016

Joomla 1.0 1.0Joomla 1.5

Joomla 1.6

Joomla 1.7 1.0Joomla 2.5

Joomla 3.0 1.0Joomla 3.1 1.0Joomla 3.2 1.0Joomla 3.3 1.0Joomla 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

Page 27: Complex Joomla! Migrations

Simplify Things

Page 28: Complex Joomla! Migrations

2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016

Joomla 1.0 1.0Joomla 1.5

Joomla 1.6

Joomla 1.7 1.0Joomla 2.5

Joomla 3.0 1.0Joomla 3.1 1.0Joomla 3.2 1.0Joomla 3.3 1.0Joomla 3.4

Joomla 3.5

Page 29: Complex Joomla! Migrations

2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016

Joomla 1.0 1.0Joomla 1.5

Joomla 1.6

Joomla 1.7 1.0Joomla 2.5

Joomla 3.0 1.0Joomla 3.1 1.0Joomla 3.2 1.0Joomla 3.3 1.0Joomla 3.4

Joomla 3.5

Page 30: Complex Joomla! Migrations

2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016

Joomla 1.0 1.0Joomla 1.5

Joomla 1.6

Joomla 1.7 1.0Joomla 2.5

Joomla 3.0 1.0Joomla 3.1 1.0Joomla 3.2 1.0Joomla 3.3 1.0Joomla 3.4

Joomla 3.5

Page 31: Complex Joomla! Migrations

2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016

Joomla 1.0 1.0Joomla 1.5

Joomla 1.6

Joomla 1.7 1.0Joomla 2.5

Joomla 3.0 1.0Joomla 3.1 1.0Joomla 3.2 1.0Joomla 3.3 1.0Joomla 3.4

Joomla 3.5

Page 32: Complex Joomla! Migrations

2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016

Joomla 1.0 1.0Joomla 1.5

Joomla 1.6

Joomla 1.7 1.0Joomla 2.5

Joomla 3.0 1.0Joomla 3.1 1.0Joomla 3.2 1.0Joomla 3.3 1.0Joomla 3.4

Joomla 3.5

Joomla 1

Page 33: Complex Joomla! Migrations

2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016

Joomla 1.0 1.0Joomla 1.5

Joomla 1.6

Joomla 1.7 1.0Joomla 2.5

Joomla 3.0 1.0Joomla 3.1 1.0Joomla 3.2 1.0Joomla 3.3 1.0Joomla 3.4

Joomla 3.5

Joomla 1

Joomla 2

Page 34: Complex Joomla! Migrations

2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016

Joomla 1.0 1.0Joomla 1.5

Joomla 1.6

Joomla 1.7 1.0Joomla 2.5

Joomla 3.0 1.0Joomla 3.1 1.0Joomla 3.2 1.0Joomla 3.3 1.0Joomla 3.4

Joomla 3.5

Joomla 1

Joomla 2

Joomla 3

Page 35: Complex Joomla! Migrations

Supported Joomla Versions

Page 36: Complex Joomla! Migrations

2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016

Joomla 1.0 1.0Joomla 1.5

Joomla 1.6

Joomla 1.7 1.0Joomla 2.5

Joomla 3.0 1.0Joomla 3.1 1.0Joomla 3.2 1.0Joomla 3.3 1.0Joomla 3.4

Joomla 3.5

Page 37: Complex Joomla! Migrations

2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016

Joomla 1.0 1.0Joomla 1.5

Joomla 1.6

Joomla 1.7 1.0Joomla 2.5

Joomla 3.0 1.0Joomla 3.1 1.0Joomla 3.2 1.0Joomla 3.3 1.0Joomla 3.4

Joomla 3.5

Page 38: Complex Joomla! Migrations

2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016

Joomla 1.0 1.0Joomla 1.5

Joomla 1.6

Joomla 1.7 1.0Joomla 2.5

Joomla 3.0 1.0Joomla 3.1 1.0Joomla 3.2 1.0Joomla 3.3 1.0Joomla 3.4

Joomla 3.5

Page 39: Complex Joomla! Migrations

Joomla 1

Page 40: Complex Joomla! Migrations

2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016

Joomla 1.0 1.0Joomla 1.5

Joomla 1.6

Joomla 1.7 1.0Joomla 2.5

Joomla 3.0 1.0Joomla 3.1 1.0Joomla 3.2 1.0Joomla 3.3 1.0Joomla 3.4

Joomla 3.5

Page 41: Complex Joomla! Migrations

Joomla 1 Unsupported: migrate

Page 42: Complex Joomla! Migrations

Joomla 2

Page 43: Complex Joomla! Migrations

2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016

Joomla 1.0 1.0Joomla 1.5

Joomla 1.6

Joomla 1.7 1.0Joomla 2.5

Joomla 3.0 1.0Joomla 3.1 1.0Joomla 3.2 1.0Joomla 3.3 1.0Joomla 3.4

Joomla 3.5

Page 44: Complex Joomla! Migrations

Joomla 2 Use latest version: 2.5.24

Page 45: Complex Joomla! Migrations

Joomla 3

Page 46: Complex Joomla! Migrations

2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016

Joomla 1.0 1.0Joomla 1.5

Joomla 1.6

Joomla 1.7 1.0Joomla 2.5

Joomla 3.0 1.0Joomla 3.1 1.0Joomla 3.2 1.0Joomla 3.3 1.0Joomla 3.4

Joomla 3.5

Page 47: Complex Joomla! Migrations

Joomla 3 Use latest version: 3.3.3

Page 48: Complex Joomla! Migrations

Migration. Upgrade. Update.

Page 49: Complex Joomla! Migrations

3.3.3 Migration.Upgrade.Update

Page 50: Complex Joomla! Migrations

3.3.3 [major].[minor].[maintenance]

Page 51: Complex Joomla! Migrations

3.0.0 [major].[minor].[maintenance]

(Can be incompatible with prior major releases.)

Page 52: Complex Joomla! Migrations

3.3.0 [major].[minor].[maintenance]

(Moderate to high level of backward compatibility with previous minor increments.)

Page 53: Complex Joomla! Migrations

3.3.3 [major].[minor].[maintenance]

(Fully backward compatible with previous maintenance increments.)

Page 54: Complex Joomla! Migrations

Upgrade Strategy

Page 55: Complex Joomla! Migrations

2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016

Joomla 1.0 1.0Joomla 1.5

Joomla 1.6

Joomla 1.7 1.0Joomla 2.5

Joomla 3.0 1.0Joomla 3.1 1.0Joomla 3.2 1.0Joomla 3.3 1.0Joomla 3.4

Joomla 3.5

Page 56: Complex Joomla! Migrations

2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016

Joomla 1.0 1.0Joomla 1.5

Joomla 1.6

Joomla 1.7 1.0Joomla 2.5

Joomla 3.0 1.0Joomla 3.1 1.0Joomla 3.2 1.0Joomla 3.3 1.0Joomla 3.4

Joomla 3.5

Page 57: Complex Joomla! Migrations
Page 58: Complex Joomla! Migrations

2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016

Joomla 1.0 1.0Joomla 1.5

Joomla 1.6

Joomla 1.7 1.0Joomla 2.5

Joomla 3.0 1.0Joomla 3.1 1.0Joomla 3.2 1.0Joomla 3.3 1.0Joomla 3.4

Joomla 3.5

Page 59: Complex Joomla! Migrations
Page 60: Complex Joomla! Migrations

2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016

Joomla 1.0 1.0Joomla 1.5

Joomla 1.6

Joomla 1.7 1.0Joomla 2.5

Joomla 3.0 1.0Joomla 3.1 1.0Joomla 3.2 1.0Joomla 3.3 1.0Joomla 3.4

Joomla 3.5

Page 61: Complex Joomla! Migrations

Joomla 1 -> Joomla 2 or 3

Page 62: Complex Joomla! Migrations
Page 63: Complex Joomla! Migrations
Page 64: Complex Joomla! Migrations
Page 65: Complex Joomla! Migrations

Joomla 2 -> Joomla 3

Page 66: Complex Joomla! Migrations
Page 67: Complex Joomla! Migrations
Page 68: Complex Joomla! Migrations
Page 69: Complex Joomla! Migrations
Page 70: Complex Joomla! Migrations

Joomla versions are as simple as

Page 71: Complex Joomla! Migrations

Joomla versions are as simple asJoomla 1 = upgrade your site

Page 72: Complex Joomla! Migrations

Joomla versions are as simple asJoomla 1 = upgrade your site Joomla 2 = use latest version

Page 73: Complex Joomla! Migrations

Joomla versions are as simple asJoomla 1 = upgrade your site Joomla 2 = use latest version Joomla 3 = use latest version

Page 74: Complex Joomla! Migrations

Joomla 1 = upgrade your site

Page 75: Complex Joomla! Migrations

Migrations

Page 76: Complex Joomla! Migrations
Page 77: Complex Joomla! Migrations
Page 78: Complex Joomla! Migrations
Page 79: Complex Joomla! Migrations
Page 80: Complex Joomla! Migrations
Page 81: Complex Joomla! Migrations
Page 82: Complex Joomla! Migrations

Migration Questions

Page 83: Complex Joomla! Migrations

1 : 1 migration?

Page 84: Complex Joomla! Migrations
Page 85: Complex Joomla! Migrations

Frustrations?

Page 86: Complex Joomla! Migrations

Wishes?

Page 87: Complex Joomla! Migrations

Unused?

Page 88: Complex Joomla! Migrations

Extensions Available?

Page 89: Complex Joomla! Migrations

Better Alternatives?

Page 90: Complex Joomla! Migrations

3 Types of Migrations

Page 91: Complex Joomla! Migrations

Easy Type: static sites

Freeze: 1 week or more Downtime: not relevant

Preparations: none, replace when ready

Page 92: Complex Joomla! Migrations

Hard Type: dynamic sites Freeze: max. 1 week

Downtime: max. 1 hour Preparations: as much as possible

Page 93: Complex Joomla! Migrations

Complicated Type: very dynamic & high traffic sites

Freeze: max. 1 day Downtime: each minute costs money Preparations: very detailed & tested

Page 94: Complex Joomla! Migrations

Tips for any Joomla Migration

Page 95: Complex Joomla! Migrations

->

Choose Joomla 3

Page 96: Complex Joomla! Migrations
Page 97: Complex Joomla! Migrations

Test Backup!

Page 98: Complex Joomla! Migrations

Clean up

Page 99: Complex Joomla! Migrations

Empty Trash

Page 100: Complex Joomla! Migrations
Page 101: Complex Joomla! Migrations

Database Fix

Page 102: Complex Joomla! Migrations
Page 103: Complex Joomla! Migrations

Error Reporting Maximum

Page 104: Complex Joomla! Migrations

Same Environment

Page 105: Complex Joomla! Migrations

Test

Test

Test

Test

TestTest

Page 106: Complex Joomla! Migrations
Page 107: Complex Joomla! Migrations

Typical Migration Process

Page 108: Complex Joomla! Migrations

1. Backup

Page 109: Complex Joomla! Migrations

1. Backup 2. Create copy of website (www.site.com/15)

Page 110: Complex Joomla! Migrations

1. Backup 2. Create copy of website (www.site.com/15)

3. Install new Joomla version (www.site.com/3)

Page 111: Complex Joomla! Migrations

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)

Page 112: Complex Joomla! Migrations

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

Page 113: Complex Joomla! Migrations

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

Page 114: Complex Joomla! Migrations

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

Page 115: Complex Joomla! Migrations

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)

Page 116: Complex Joomla! Migrations

Case:

Complex Migration Request

Page 117: Complex Joomla! Migrations

Case:

Complex Migration Request

Page 118: Complex Joomla! Migrations

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

Page 119: Complex Joomla! Migrations

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)

Page 120: Complex Joomla! Migrations

1500 articles 650 menu-items

950 modules 20+ extensions

Page 121: Complex Joomla! Migrations

Setting Change Example

Menu-Module !

!

Page 122: Complex Joomla! Migrations

Setting Change Example

Menu-Module !

vs level

Joomla 1.5 Joomla 2.50-3 1-4

Page 123: Complex Joomla! Migrations

Record Database Changes

Page 124: Complex Joomla! Migrations

Create Custom Script www.site.com/migrate.php

Page 125: Complex Joomla! Migrations

Change Modules with ID’s 223, 294 and 357

Page 126: Complex Joomla! Migrations

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.

Page 127: Complex Joomla! Migrations

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();

Page 128: Complex Joomla! Migrations

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);!}

Page 129: Complex Joomla! Migrations

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/>');!}

Page 130: Complex Joomla! Migrations

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/>');!}

Page 131: Complex Joomla! Migrations

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/>');!}

Page 132: Complex Joomla! Migrations

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');!}

Page 133: Complex Joomla! Migrations

Correct component specific

Page 134: Complex Joomla! Migrations

Correct component specific - set Access to 1 for all items in ZOO

Page 135: Complex Joomla! Migrations

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/>');

Page 136: Complex Joomla! Migrations

Custom Script Example https://gist.github.com/sanderpotjer/9311435

Page 137: Complex Joomla! Migrations

Clean Joomla 3 Base

Page 138: Complex Joomla! Migrations

Test

Page 139: Complex Joomla! Migrations

Adjust Custom Script

Page 140: Complex Joomla! Migrations

Test

Page 141: Complex Joomla! Migrations

Adjust Custom Script

Page 142: Complex Joomla! Migrations

Test

Page 143: Complex Joomla! Migrations

Adjust Custom Script

Page 144: Complex Joomla! Migrations

Migration Script (non code)

Page 145: Complex Joomla! Migrations
Page 146: Complex Joomla! Migrations

10:30 - 11:00 hour Migration day kickoff meeting

Page 147: Complex Joomla! Migrations

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

Page 148: Complex Joomla! Migrations

11:00 - 12:30 hour Joomla 1.5 site preparations: - Empty categories trash - Empty articles trash - Empty menu trash - General Check-In

Page 149: Complex Joomla! Migrations

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/

Page 150: Complex Joomla! Migrations

Lunch

Page 151: Complex Joomla! Migrations

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

Page 152: Complex Joomla! Migrations

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

Page 153: Complex Joomla! Migrations

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

Page 154: Complex Joomla! Migrations

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

Page 155: Complex Joomla! Migrations

Pizza!

Page 156: Complex Joomla! Migrations

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

Page 157: Complex Joomla! Migrations

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

Page 158: Complex Joomla! Migrations

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/

Page 159: Complex Joomla! Migrations

Celebrate!

Page 160: Complex Joomla! Migrations

Celebrate!

Page 161: Complex Joomla! Migrations

Migration Manual

Page 162: Complex Joomla! Migrations

1) Set exact.nl (Joomla 1.5) site off-line (+/- 0,5 minute)

Page 163: Complex Joomla! Migrations

2) Back-up Joomla 1.5 site (+/- 5 minutes)

Page 164: Complex Joomla! Migrations

3) SP Upgrade migration (+/- 1 minute) Data migration via SP Upgrade extension - Users - Content - Newsfeed - Menus - Modules

Page 165: Complex Joomla! Migrations

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_*

Page 166: Complex Joomla! Migrations

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

Page 167: Complex Joomla! Migrations

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

Page 168: Complex Joomla! Migrations

6) Check result (+/- 2 minutes) Check migration result on www.exact.nl/25/

Page 169: Complex Joomla! Migrations

7) Move Joomla 1.5 site (+/- 0,5 minute) Move www.exact.nl to www.exact.nl/15/

Page 170: Complex Joomla! Migrations

8) Move Joomla 2.5 site (+/- 0,5 minute) Move www.exact.nl/25/ to www.exact.nl/

Page 171: Complex Joomla! Migrations

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

Page 172: Complex Joomla! Migrations

10) Set exact.nl (Joomla 2.5) site on-line (+/- 0,5 minute)

Page 173: Complex Joomla! Migrations

Emergency Revert Manual

Page 174: Complex Joomla! Migrations

1) Set exact.nl (Joomla 2.5) site off-line (+/- 0,5 minute)

Page 175: Complex Joomla! Migrations

2) Move Joomla 2.5 site (+/- 0,5 minute) Move www.exact.nl to www.exact.nl/25/

Page 176: Complex Joomla! Migrations

3) Move Joomla 1.5 site (+/- 0,5 minute) Move www.exact.nl/15/ to www.exact.nl/

Page 177: Complex Joomla! Migrations

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

Page 178: Complex Joomla! Migrations

5) Set exact.nl (Joomla 1.5) site on-line (+/- 0,5 minute)

Page 179: Complex Joomla! Migrations

Case Results:

Complex Migration Request !

freeze & downtime: 6 minutes

Page 180: Complex Joomla! Migrations

Case Results:

Complex Migration Request !

freeze & downtime: 6 minutes preparation time: 2-3 weeks

Page 181: Complex Joomla! Migrations

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

Page 182: Complex Joomla! Migrations