With the introduction of the non-linear updates in bug 7167, the current updatedatabase.pl mechanism will be phased out. However, it will behoove us to keep copies of the updates that are performed by the non-linear system in the current updatedatabase.pl at least until the 3.12 release, as an insurance policy. In order to do that, though, it must be possible to specify that updates greater than X.XX.XX.XXX should not be run. Replacing our simplistic if ($DBversion < C4::Context->preference('Version')) with a subroutine call that checks these things will solve the problem.
Created attachment 13859 [details] [review] Bug 9191: updatedatabase.pl should only run updates up to the current version Check whether a given update should be run when passed the proposed version number. The update will always be run if the proposed version is greater than the current database version and less than or equal to the version in kohaversion.pl. The update is also run if the version contains XXX, though this behavior will be changed following the adoption of non-linear updates as implemented in bug 7167. To test: 1) Make sure that the first example database update added by this patch in installer/data/mysql/updatedatabase.pl has a version number one greater than the version of Koha you have installed. 2) Set the Version syspref back one version behind your current version. 3) Navigate to the main page of the staff client, and log in to the installer. 4) Confirm that the update page claims to have rerun the previous update and has displayed the log message: "Upgrade to 3.11.00.XXX done (Bug 9191: You should see this)" but not the log message: "Upgrade to [version number] done (Bug 9191: You shouldn't see this)" Note: the sample database revisions will be removed by the RM before this patch is pushed to master.
Created attachment 13877 [details] [review] Bug 9191: updatedatabase.pl should only run updates up to the current version Check whether a given update should be run when passed the proposed version number. The update will always be run if the proposed version is greater than the current database version and less than or equal to the version returned by C4::Context->final_linear_version (initially set to be equal to the version in kohaversion.pl). The update is also run if the version contains XXX, though this behavior will be changed following the adoption of non-linear updates as implemented in bug 7167. To test: 1) Make sure that the first example database update added by this patch in installer/data/mysql/updatedatabase.pl has a version number one greater than the version of Koha you have installed. 2) Set the Version syspref back one version behind your current version. 3) Navigate to the main page of the staff client, and log in to the installer. 4) Confirm that the update page claims to have rerun the previous update and has displayed the log message: "Upgrade to 3.11.00.XXX done (Bug 9191: You should see this)" but not the log message: "Upgrade to [version number] done (Bug 9191: You shouldn't see this)" Note: the sample database revisions will be removed by the RM before this patch is pushed to master.
In order to be sure to understand. Currently the routine final_linear_version returns the kohaversion.pl value. Once the Bug 7167 will be pushed, this routine will return the last version number in the updatedatabase.pl file ?
(In reply to comment #3) > In order to be sure to understand. > > Currently the routine final_linear_version returns the kohaversion.pl value. > Once the Bug 7167 will be pushed, this routine will return the last version > number in the updatedatabase.pl file ? My idea is that it will be changed to: return '3.11.000.005'; And then we can use that instead of $koha39.
Created attachment 13878 [details] [review] Bug 9191: updatedatabase.pl should only run updates up to the current version Check whether a given update should be run when passed the proposed version number. The update will always be run if the proposed version is greater than the current database version and less than or equal to the version returned by C4::Context->final_linear_version (initially set to be equal to the version in kohaversion.pl). The update is also run if the version contains XXX, though this behavior will be changed following the adoption of non-linear updates as implemented in bug 7167. To test: 1) Make sure that the first example database update added by this patch in installer/data/mysql/updatedatabase.pl has a version number one greater than the version of Koha you have installed. 2) Set the Version syspref back one version behind your current version. 3) Navigate to the main page of the staff client, and log in to the installer. 4) Confirm that the update page claims to have rerun the previous update and has displayed the log message: "Upgrade to 3.11.00.XXX done (Bug 9191: You should see this)" but not the log message: "Upgrade to [version number] done (Bug 9191: You shouldn't see this)" Note: the sample database revisions will be removed by the RM before this patch is pushed to master. Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com> works great
Created attachment 13951 [details] [review] Bug 9191: updatedatabase.pl should only run updates up to the current version [Signed-off][Passed QA] Check whether a given update should be run when passed the proposed version number. The update will always be run if the proposed version is greater than the current database version and less than or equal to the version returned by C4::Context->final_linear_version (initially set to be equal to the version in kohaversion.pl). The update is also run if the version contains XXX, though this behavior will be changed following the adoption of non-linear updates as implemented in bug 7167. To test: 1) Make sure that the first example database update added by this patch in installer/data/mysql/updatedatabase.pl has a version number one greater than the version of Koha you have installed. 2) Set the Version syspref back one version behind your current version. 3) Navigate to the main page of the staff client, and log in to the installer. 4) Confirm that the update page claims to have rerun the previous update and has displayed the log message: "Upgrade to 3.11.00.XXX done (Bug 9191: You should see this)" but not the log message: "Upgrade to [version number] done (Bug 9191: You shouldn't see this)" Note: the sample database revisions will be removed by the RM before this patch is pushed to master. Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com> works great Signed-off-by: Elliott Davis <elliott@test.bywatersolutions.com> Works as expected. Test plan is great. Code looks to be adherent to standards.
This patch has been pushed to master.