Upgrading Wallabag

Upgrading Wallabag

If you're running Wallabag in Docker and you suddenly get a blank page when trying to access or login, you may need to run a database migration.

Check the logs for an error like this:

[error] 278#278: *1 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'wallabag.wallabag_internal_setting' doesn't exist in /var/www/wallabag/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:129

If you're using Portainer you can view the logs in the GUI or you can always use the Docker CLI container or service commands

At first I thought the blank page issue was something to do with my Traefik configuration as the service initially comes up without any errors in the log. However the error appears after trying to access the service. We can see it suggests it's expecting a database table that doesn't exist.

After a little digging the solution is very simple and well documented.

$ docker exec -t NAME_OR_ID_OF_YOUR_WALLABAG_CONTAINER /var/www/wallabag/bin/console doctrine:migrations:migrate --env=prod --no-interaction

Again you can run this from the command line of the docker host or login to an interactive terminal or via Portainer. It should spit out some output on what it's doing and then you should be good to go. A simple post but hopefully it saves someone some time and frustration.