bug 2677 fixed: smarter check of the database version and manage partial upgrade.

git-svn-id: http://piwigo.org/svn/branches/2.4@16312 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
plegall
2012-07-02 22:28:07 +00:00
parent 968d32fde2
commit b85adcaa73
2 changed files with 30 additions and 8 deletions
+10 -3
View File
@@ -52,7 +52,7 @@ $to_apply = array_diff($existing, $applied);
$inserts = array(); $inserts = array();
foreach ($to_apply as $upgrade_id) foreach ($to_apply as $upgrade_id)
{ {
if ($upgrade_id >= 98) if ($upgrade_id >= 112) // TODO change on each release
{ {
break; break;
} }
@@ -83,11 +83,18 @@ if (!empty($inserts))
ob_start(); ob_start();
echo '<pre>'; echo '<pre>';
for ($upgrade_id = 112; $upgrade_id <= 127; $upgrade_id++) for ($upgrade_id = 112; $upgrade_id <= 127; $upgrade_id++) // TODO change on each release
{ {
if (!file_exists(UPGRADES_PATH.'/'.$upgrade_id.'-database.php')) if (!file_exists(UPGRADES_PATH.'/'.$upgrade_id.'-database.php'))
{ {
break; continue;
}
// maybe the upgrade task has already been applied in a previous and
// incomplete upgrade
if (in_array($upgrade_id, $applied))
{
continue;
} }
unset($upgrade_description); unset($upgrade_description);
+20 -5
View File
@@ -322,13 +322,28 @@ else if (!in_array('rating_score', $columns_of[PREFIX_TABLE.'images']))
{ {
$current_release = '2.2.0'; $current_release = '2.2.0';
} }
else if (!in_array('coi', $columns_of[PREFIX_TABLE.'images']))
{
$current_release = '2.3.0';
}
else else
{ {
die('No upgrade required, the database structure is up to date'); // retrieve already applied upgrades
$query = '
SELECT id
FROM '.PREFIX_TABLE.'upgrade
;';
$applied_upgrades = array_from_query($query, 'id');
if (!in_array(127, $applied_upgrades))
{
$current_release = '2.3.0';
}
else
{
// confirm that the database is in the same version as source code files
conf_update_param('piwigo_db_version', get_branch_from_version(PHPWG_VERSION));
echo 'No upgrade required, the database structure is up to date';
echo '<br><a href="index.php">← back to gallery</a>';
exit();
}
} }
// +-----------------------------------------------------------------------+ // +-----------------------------------------------------------------------+