diff options
author | plegall <plg@piwigo.org> | 2006-04-19 20:54:13 +0000 |
---|---|---|
committer | plegall <plg@piwigo.org> | 2006-04-19 20:54:13 +0000 |
commit | 8789f41f8ccb31d0ec9f2c75996511e26abba8bc (patch) | |
tree | 2ca978b4642a0d8a9be3cf95d2c3cd4c93458278 /install/upgrade_1.3.0.php | |
parent | dab8075c964fb1ba0c8ffc0158c29446bca70142 (diff) |
bug fixed: during installation, upgrades from install/db with complex
identifier (X.x) were not correctly inserted.
bug fixed: available upgrades from install/db need to be inserted in
#upgrade table.
deletion: all upgrades from install/db coming from trunk are removed.
new: complete upgrade from any previous release from 1.3.0 to 1.5.2 with
automatic detection detection of the previous release.
git-svn-id: http://piwigo.org/svn/branches/branch-1_6@1209 68402e56-0260-453c-a942-63ccdbb3a9ee
Diffstat (limited to '')
-rw-r--r-- | install/upgrade_1.3.0.php (renamed from install/db/20-database.php) | 129 |
1 files changed, 84 insertions, 45 deletions
diff --git a/install/db/20-database.php b/install/upgrade_1.3.0.php index 5dba69168..f5d650e6b 100644 --- a/install/db/20-database.php +++ b/install/upgrade_1.3.0.php @@ -6,9 +6,9 @@ // +-----------------------------------------------------------------------+ // | branch : BSF (Best So Far) // | file : $RCSfile$ -// | last update : $Date: 2005-09-21 00:04:57 +0200 (mer, 21 sep 2005) $ +// | last update : $Date: 2005-01-08 00:10:51 +0100 (sam, 08 jan 2005) $ // | last modifier : $Author: plg $ -// | revision : $Revision: 870 $ +// | revision : $Revision: 675 $ // +-----------------------------------------------------------------------+ // | This program is free software; you can redistribute it and/or modify | // | it under the terms of the GNU General Public License as published by | @@ -25,67 +25,106 @@ // | USA. | // +-----------------------------------------------------------------------+ + +/** + * Upgrade from 1.3.0 to 1.3.1 + */ + if (!defined('PHPWG_ROOT_PATH')) { - die('Hacking attempt!'); + die ('This page cannot be loaded directly, load upgrade.php'); +} +else +{ + if (!defined('PHPWG_IN_UPGRADE') or !PHPWG_IN_UPGRADE) + { + die ('Hacking attempt!'); + } } -$upgrade_description = - '#image_category.is_storage replaced by #image.storage_category_id'; +$queries = array( + " +ALTER TABLE phpwebgallery_categories + ADD COLUMN uppercats varchar(255) NOT NULL default '' +;", -// +-----------------------------------------------------------------------+ -// | New column | -// +-----------------------------------------------------------------------+ + " +CREATE TABLE phpwebgallery_user_category ( + user_id smallint(5) unsigned NOT NULL default '0' +) +;", -$query = ' -ALTER TABLE '.PREFIX_TABLE.'images - ADD storage_category_id smallint(5) unsigned default NULL -;'; -pwg_query($query); + " +ALTER TABLE phpwebgallery_categories + ADD INDEX id (id) +;", + + " +ALTER TABLE phpwebgallery_categories + ADD INDEX id_uppercat (id_uppercat) +;", + + " +ALTER TABLE phpwebgallery_image_category + ADD INDEX category_id (category_id) +;", + + " +ALTER TABLE phpwebgallery_image_category + ADD INDEX image_id (image_id) +;", + ); + +foreach ($queries as $query) +{ + $query = str_replace('phpwebgallery_', PREFIX_TABLE, $query); + pwg_query($query); +} +// filling the new column categories.uppercats +$id_uppercats = array(); $query = ' -SELECT category_id, image_id - FROM '.PREFIX_TABLE.'image_category - WHERE is_storage = \'true\' +SELECT id, id_uppercat + FROM '.CATEGORIES_TABLE.' ;'; $result = pwg_query($query); +while ($row = mysql_fetch_array($result)) +{ + if (!isset($row['id_uppercat']) or $row['id_uppercat'] == '') + { + $row['id_uppercat'] = 'NULL'; + } + $id_uppercats[$row['id']] = $row['id_uppercat']; +} $datas = array(); -while ($row = mysql_fetch_array($result)) + +foreach (array_keys($id_uppercats) as $id) { - array_push( - $datas, - array( - 'id' => $row['image_id'], - 'storage_category_id' => $row['category_id'], - ) - ); + $data = array(); + $data['id'] = $id; + $uppercats = array(); + + array_push($uppercats, $id); + while (isset($id_uppercats[$id]) and $id_uppercats[$id] != 'NULL') + { + array_push($uppercats, $id_uppercats[$id]); + $id = $id_uppercats[$id]; + } + $data['uppercats'] = implode(',', array_reverse($uppercats)); + + array_push($datas, $data); } + mass_updates( - PREFIX_TABLE.'images', + CATEGORIES_TABLE, array( 'primary' => array('id'), - 'update' => array('storage_category_id'), + 'update' => array('uppercats') ), $datas ); -// +-----------------------------------------------------------------------+ -// | Delete obsolete column | -// +-----------------------------------------------------------------------+ - -$query = ' -ALTER TABLE '.PREFIX_TABLE.'image_category DROP COLUMN is_storage -;'; -pwg_query($query); - -// +-----------------------------------------------------------------------+ -// | End notification | -// +-----------------------------------------------------------------------+ - -echo -"\n" -.'Column '.PREFIX_TABLE.'image_category' -.' replaced by '.PREFIX_TABLE.'images.storage_category_id'."\n" -; -?> +// now we upgrade from 1.3.1 to 1.6.0 +include_once(PHPWG_ROOT_PATH.'install/upgrade_1.3.1.php'); +?>
\ No newline at end of file |