mriedmann / humhub-docker

Alpine-based PHP-FPM and NGINX HumHub docker-container
MIT License
95 stars 77 forks source link

Upgrading from 1.12 to latest #322

Closed limenleap closed 1 year ago

limenleap commented 1 year ago

My version of HumHub was on 1.12 (dockerized) I gave the following commands so that I could go to the latest

(In the docker-compose.yml file it is pointing to the humhub:latest tag)

sudo docker-compose down
sudo docker-compose up -d

The docker logs seem to be in a loop around this error:

humhub-humhub-1  | *** applying m140701_000611_profile_genderfield
humhub-humhub-1  | PHP Notice 'yii\base\ErrorException' with message 'Trying to access array offset on value of type bool'

Now the entire site is down. Any help would be greatly appreciated!. Thanks

mriedmann commented 1 year ago

It seems that you accidentally updated your installation and a migration is now failing. You might have hit an unknown issue that could be got introduced with that change: https://github.com/humhub/humhub/pull/6238

If you have any backups (and I hope you do), just pin your image to the 1.12 tag, do a compose up and restore your database. If you have no backup, please try to open an issue at the Humhub project. You can also try to analyze the affected migration: https://github.com/humhub/humhub/blob/53eec3edf6410caff218176c24ecf4a2f2ff8a6a/protected/humhub/modules/user/migrations/m140701_000611_profile_genderfield.php#L6 and try to figure out what is going on.

limenleap commented 1 year ago

Oh no.... Thank you for your inputs. I don't have backups. Is it possible that the mysql database is still available? Can I comment out that part of the docker-compose.yml so that only the mysql database starts up ... I want to retrieve db tables pertaining to the few users who registered. I don't mind losing the rest of the data as the site is quite new and nothing much came there. But I need to at least get back the users data

Is that possible? (I am not very good at docker, as you may have guessed... and hence I am asking)

Thank you so much for your guidance

mriedmann commented 1 year ago

Hey! Sorry for the late reply.

Sure, commenting out everything that is not MySQL related should work. But also make sure to save your database-files at least now, so you can recover if anything goes wrong.

It should be possible to bring your instance back up but you will (most likely) have to fix the DB Schema or at least the migration table by hand.

First of all, identify and save/vopy you database files. Then try to start the DB alone (commenting out the humhub part). If the DB starts, use DBeaver (or another MySQL client) to inspect and potentially backup the DB. From there you can try to manually fix the half-done migration.

Searching the humhub issues or posting there should provide you with some guidance. You can also have a look at this page https://www.yiiframework.com/doc/guide/2.0/en/db-migrations#modifying-migration-history ... Humhub is written using the Yii Framework so it's documentation could also help.

limenleap commented 1 year ago

Thank you very much. This is a lesson that I'll not forget :-)

mriedmann commented 1 year ago

No problem, I will close this issue for now, feel free to comment on it if you have any further (docker-image specific) question.