wojtek opened 2 years ago
|
|||||
Are you using OneDev official helm chart install/upgrade? |
|||||
You may check if there are any upgrade errors by running:
|
|||||
No, we are not: https://github.com/tigase/helm-charts/tree/master/onedev. At the time of the deployment official helm wasn't available. Though, the upgrade should be handled by the docker image (see https://code.onedev.io/projects/160/files/main/server-product/docker/entrypoint.sh, line 20) - am I correct?
Above output is from the logs of the deployment (i.e.
It seems that the upgrade is ran ("INFO - Upgrading /opt/onedev...") but fails for some reason? |
|||||
Firstable please take a backup of your OneDev database and data volume. So you are still using the old kubectl resource based deployment? If so, please follow below link to switch to maintenance mode: https://code.onedev.io/projects/162/files/5.0/pages/maintenance-mode.md Then follow below steps to do a manual upgrade to see if there is any errors:
|
|||||
Result:
same error as outputed by
|
|||||
Seems that for some reason, the app code did not copy from /app to /opt/onedev. This seems pretty odd. Can you please tar content of of |
|||||
Before uploading I checked the contents of those directories (see the end of the message) and it seems that
BTW. Why to you have |
|||||
The diff command will not show differences in sub directories. Please run OneDev app code is versioned and can only read data of same version. When a new app version connects to database of old version, it will not work, OneDev will call old app to export data, upgrading exported data, and then import data with new app. This is the reason why we have /app (for new version) and /opt/onedev (for old version). If an old app connects to a new database, the upgrade will no longer work. And a manual upgrade will be necessary by running:
|
|||||
Indeed:
It seems a little bit convoluted. Should this be handled in-place, i.e. (ignoring docker for a moment): you have
Ran:
|
|||||
Is it working now? I can not see full output of the commands. Simply pointing new version of the application to old version of data to do an in-place upgrade is very complex, as the new version needs to carry over all database schema of every old version, and also needs to preserve original class signature as many data is stored in serialized form in database for flexibility. |
|||||
Yes, it's working now - I said it at the end but then the comment was cut: https://code.onedev.io/projects/160/issues/839
Thank you for explanation. That's quite interesting solution. |
|||||
Robin Shen changed state to 'Closed' 2 years ago
|
Type |
Bug
|
Priority |
Normal
|
Assignee | |
Affected Versions |
Not Found
|
I just tried to upgrade from 7.3.2 to 7.4.9 and it failed:
We are deploying to our k8s cluster using official docker images.