Thread:Project:Support desk/Easy way to upgrade from version 1.8 to 2.1?/reply (13)

I understand that this situation is frustating. However, I do not know a way around this trial and error process. :-(

Try seeing it this way: If you did each single update on its own, then you would have done fourteen(!) major updates in the last six years. From my experience I can tell you that an update from one version to the next one mostly causes only minor or no trouble at all. I estimate 8 or maybe even 10 of these updates would have worked flawlessly, while a few would not. The difference for you only is that you now see all those errors, which you normally would have seen in the course of six years, at one day. No matter if you updated back then or if you do it now, the number of errors does not become more. But you have to solve them.

The problem is that update.php does not have anything like a dry-run mode. You will not know, if it works properly (if it works properly now) until you test it. And when it did not, then you have a halfly-updated DB and you have to replace it with a backup.

To make things easier I would put the wiki database into the MySQL server twice: One DB for testing the upgrade (e.g. called "actual-wiki-db") and another one, not upgraded or touched in any way, as a backup ("backup-db"). Each time update.php crashed, copy over the backup again, solve the PHP error or what update.php complained about and try again. I would make this a oneliner in the shell, basically with this syntax:

With that it's really only pressing Enter and waiting some time until actual-wiki-db is OK again.

You have to keep LocalSettings.php and the content from the folder images/. Which extensions do you have in use? I think to do the update even more easily, you can try deactivating ALL extensions in LocalSettings.php by commenting the require_once lines. Then you can at least be sure that - should there be an error - it is not caused by any extension.

After you did the above, what is the error message you get when you run update.php now?