Migration script broke all sites - really serious but basic script problems


#1

I have logs of the script output to document this, but after digging in myself it looks like the migration script wasn’t tested well at all. I was running a ‘migrate on same server’ as recommended by the docs - I haven’t rested the remote migration but that may have some of these problems too (some of them it doesn’t from comparing the code)

  • The --dry-run flag is ignored and does a live run! This is because EE_DRY_RUN is defined but never used in the code.
  • <site-name> doesn’t work - looks like it isn’t used in the code, the script effectively always does --all
  • If PHP7.2 is missing it doesn’t warn, but continues then (because of the problems above) breaks every site as EEv3 is removed and EEv4 can’t run.
  • Migration fails due to incorrect paths / undefined vars. Comparing run_ee4_sites_8080() and run_ee4_sites_8080_remote(), the block of code that defines EE3_SITE_HTDOCS, EE4_SITE_ROOT and EE4_SITE_HTDOCS has been missed out.

(I should add the caveat that I have written some bash scripts but am no guru so could be wrong of course!)

I don’t envy you the task of providing the migration script, and it’s amazing that you did. But this feels like it wasn’t even tested - these are glaring errors that completely and irreversibly broke my server requiring a rollback.


#2

I’m wanting to do the migration as well, but I was afraid of those issues so I’m stuck with updates to version 4.


#3

Maybe it’s just me but I would prefer to do a clean install and just import the files and database. Writing a script to loop through all the sites wouldn’t be too difficult.


#4

Maybe using a migration plugin like UpdraftPlus WordPress would be a good idea.

I’ve done it before and it worked well.


#5

I had the same issue, the script to upgrade to EE4 broke all my sites, which is kinda normal because EE4 doesn’t works the same way as EE3.

I would give a try on WordOps, it gives you PHP7.2 and PHP7.3 out of box and migration from EE3 is much easier than migrating to EE4.