Harden Repairsteps and migration#4214
Merged
Merged
Conversation
Signed-off-by: dartcafe <github@dartcafe.de>
Signed-off-by: dartcafe <github@dartcafe.de>
Signed-off-by: dartcafe <github@dartcafe.de>
Signed-off-by: dartcafe <github@dartcafe.de>
Signed-off-by: dartcafe <github@dartcafe.de>
Signed-off-by: dartcafe <github@dartcafe.de>
Bumps [shivammathur/setup-php](https://github.com/shivammathur/setup-php) from 2.35.2 to 2.35.3. - [Release notes](https://github.com/shivammathur/setup-php/releases) - [Commits](shivammathur/setup-php@ccf2c62...2052987) Signed-off-by: dartcafe <github@dartcafe.de> --- updated-dependencies: - dependency-name: shivammathur/setup-php dependency-version: 2.35.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
Signed-off-by: dartcafe <github@dartcafe.de>
Signed-off-by: dartcafe <github@dartcafe.de>
Signed-off-by: dartcafe <github@dartcafe.de>
|
Looks good. What I did to test because I had issue #4210 when I updated to 8.3.0_beta.1 in my test instance: I disabled and removed polls 8.3.0_beta.1. In the database, I deleted all oc_polls_* tables and all polls lines in oc_migrations. I manually downloaded polls 8.2.2 zip from github and extracted it to the apps directory, enabled it. That took a while. I then updated to 8.3.0_beta.3 via occ upgrade. That was very quick. No errors here. |
13 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
First I was trying to force reloading of changed types and to ensure that outdated classes are not used anymore. The Idea was to define an alias for the Classes used while updating
Long story short; This ended in a crucial refactoring with a lot of side effects and a massive grown complexity.
Backt to the long story:
The background is, polls uses another declarative way in migrating and creating database structures. The recommended way is to add a new migration, once the database has to be touched. Over the years this would have become unmaintainable IMHO.
Polls uses a declarative way to define tables, their relations and indices and constraints. The value is a centralized definition of the database and the possibilty to have commands like polls:db:rebuild without massive code duplication, which help to create a consistent database schema, nevertheless what has changed inside the database, if you removed indices, deleted a table, and so on. ... and more convenient, if the database has to be changed, sind only properties have to be changed or added to the table definition.
The downside is an effect, that while updating, Nextcloud can't load changed classes, because when the code is replaced during the update process, the old class may be probably already loaded - with it's old signature. This causes Exceptions, if the Table and Index definitions or Manager methods got changed.
Also Polls makes heavy usage of the repair steps, to ensure some checks and fixes are executed on every install|update|enabling.
So the decision was made to change this completely.
What is the desired Value:
fixes #4206
fixes #4213
fixes #4210
fixes #4206 (to be honest, was fixed in another PR)
If anyone followed until here: Hello 👋
After simulating millions of installs, updates, dis- and enabling, destroying and repairing the db , I would like to rely on some guys who can give feedback, if any issues still exist.