Recently I had to upgrade a dozen PhpBB boards to the latest version. Previously I would do this by hand, which would take days. This time though, while reading through the update notes, I noticed that it is possible to update the database through the console (I assume this was only introduced in 3.1). That was the necessary prerequisity to be able to automate everything. I ended up with the following script:
#!/usr/bin/env bash echo "Upgrading PhpBB instal in '$1' to 3.1 with files from '$2'..." cd $1 echo "Deleting old files..." shopt -s extglob rm -r !(config.php|images|files|store) shopt -u extglob echo "Copying in 3.1 files..." rsync -a --exclude='.git' $2/ $1/ echo "Migrating the database..." php ./bin/phpbbcli.php db:migrate --safe-mode echo "Removing the install dir..." rm -r install echo "Done."
The usage is as follows (assuming you named the script phpbb-update-to-3.1
):
phpbb-update-to-3.1 /www/forum-to-update /tmp/phpbb-3.1-files-for-upgrade
The second parameter is the path to where you have prepared your 3.1 files, according to this guide. You should put your custom styles in this folder too.
If you have custom folders or files within your current install, make sure you add those to the rm -r !(config.php|images|files|store)
line in the update script. This rm
deletes everything except the files within the curly braces.
This saved me a lot of time and prevented mistakes. Enjoy!