source: branches/2.0/install/upgrade_1.6.2.php @ 2854

Last change on this file since 2854 was 2754, checked in by plg, 16 years ago

new: upgrade script from 1.7.0. Instead of previous upgrade scripts, I call
directly the "unit" upgrades from 61 to current. Previous upgrades not in
the database are inserted but not applied (and have an explicit description
saying so).

  • Property svn:eol-style set to LF
  • Property svn:keywords set to Author Date Id Revision
File size: 9.4 KB
Line 
1<?php
2// +-----------------------------------------------------------------------+
3// | Piwigo - a PHP based picture gallery                                  |
4// +-----------------------------------------------------------------------+
5// | Copyright(C) 2008      Piwigo Team                  http://piwigo.org |
6// | Copyright(C) 2003-2008 PhpWebGallery Team    http://phpwebgallery.net |
7// | Copyright(C) 2002-2003 Pierrick LE GALL   http://le-gall.net/pierrick |
8// +-----------------------------------------------------------------------+
9// | This program is free software; you can redistribute it and/or modify  |
10// | it under the terms of the GNU General Public License as published by  |
11// | the Free Software Foundation                                          |
12// |                                                                       |
13// | This program is distributed in the hope that it will be useful, but   |
14// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
15// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
16// | General Public License for more details.                              |
17// |                                                                       |
18// | You should have received a copy of the GNU General Public License     |
19// | along with this program; if not, write to the Free Software           |
20// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
21// | USA.                                                                  |
22// +-----------------------------------------------------------------------+
23
24if (!defined('PHPWG_ROOT_PATH'))
25{
26  die ('This page cannot be loaded directly, load upgrade.php');
27}
28else
29{
30  if (!defined('PHPWG_IN_UPGRADE') or !PHPWG_IN_UPGRADE)
31  {
32    die ('Hacking attempt!');
33  }
34}
35
36$queries = array(
37"
38ALTER TABLE `".PREFIX_TABLE."categories`
39  ADD COLUMN `permalink` varchar(64) default NULL
40;",
41
42"
43ALTER TABLE `".PREFIX_TABLE."categories`
44  ADD COLUMN `image_order` varchar(128) default NULL
45;",
46
47"
48ALTER TABLE `".PREFIX_TABLE."categories`
49  ADD UNIQUE `categories_i3` (`permalink`)
50;",
51
52"
53ALTER TABLE `".PREFIX_TABLE."groups`
54  ADD COLUMN `is_default` enum('true','false') NOT NULL default 'false'
55;",
56
57"
58RENAME TABLE `".PREFIX_TABLE."history` TO `".PREFIX_TABLE."history_backup`
59;",
60
61"
62CREATE TABLE `".PREFIX_TABLE."history` (
63  `id` int(10) unsigned NOT NULL auto_increment,
64  `date` date NOT NULL default '0000-00-00',
65  `time` time NOT NULL default '00:00:00',
66  `year` smallint(4) NOT NULL default '0',
67  `month` tinyint(2) NOT NULL default '0',
68  `day` tinyint(2) NOT NULL default '0',
69  `hour` tinyint(2) NOT NULL default '0',
70  `user_id` smallint(5) NOT NULL default '0',
71  `IP` varchar(15) NOT NULL default '',
72  `section` enum('categories','tags','search','list','favorites','most_visited','best_rated','recent_pics','recent_cats') default NULL,
73  `category_id` smallint(5) default NULL,
74  `tag_ids` varchar(50) default NULL,
75  `image_id` mediumint(8) default NULL,
76  `summarized` enum('true','false') default 'false',
77  `image_type` enum('picture','high','other') default NULL,
78  PRIMARY KEY  (`id`),
79  KEY `history_i1` (`summarized`)
80) TYPE=MyISAM
81;",
82
83"
84ALTER TABLE `".PREFIX_TABLE."image_category`
85  DROP INDEX `image_category_i1`
86;",
87
88"
89ALTER TABLE `".PREFIX_TABLE."image_category`
90  ADD INDEX `image_category_i1` (`category_id`)
91;",
92
93"
94ALTER TABLE `".PREFIX_TABLE."image_category`
95  DROP INDEX `image_category_i2`
96;",
97
98"
99ALTER TABLE `".PREFIX_TABLE."images`
100  ADD COLUMN `high_filesize` mediumint(9) unsigned default NULL
101;",
102
103"
104ALTER TABLE `".PREFIX_TABLE."user_infos`
105  CHANGE COLUMN `language`
106    `language` varchar(50) NOT NULL default 'en_UK.iso-8859-1'
107;",
108
109"
110ALTER TABLE `".PREFIX_TABLE."user_infos`
111  DROP COLUMN `auto_login_key`
112;",
113
114"
115ALTER TABLE `".PREFIX_TABLE."user_infos`
116  ADD COLUMN `show_nb_hits` enum('true','false') NOT NULL default 'false'
117;",
118
119"
120ALTER TABLE `".PREFIX_TABLE."user_mail_notification`
121  DROP INDEX `uidx_check_key`
122;",
123
124"
125ALTER TABLE `".PREFIX_TABLE."user_mail_notification`
126  ADD UNIQUE `user_mail_notification_ui1` (`check_key`)
127;",
128
129"
130CREATE TABLE `".PREFIX_TABLE."history_summary` (
131  `id` varchar(13) NOT NULL default '',
132  `year` smallint(4) NOT NULL default '0',
133  `month` tinyint(2) default NULL,
134  `day` tinyint(2) default NULL,
135  `hour` tinyint(2) default NULL,
136  `nb_pages` int(11) default NULL,
137  PRIMARY KEY  (`id`)
138) TYPE=MyISAM
139;",
140
141"
142CREATE TABLE `".PREFIX_TABLE."old_permalinks` (
143  `cat_id` smallint(5) unsigned NOT NULL default '0',
144  `permalink` varchar(64) NOT NULL default '',
145  `date_deleted` datetime NOT NULL default '0000-00-00 00:00:00',
146  `last_hit` datetime default NULL,
147  `hit` int(10) unsigned NOT NULL default '0',
148  PRIMARY KEY  (`permalink`)
149) TYPE=MyISAM
150;",
151
152"
153CREATE TABLE `".PREFIX_TABLE."plugins` (
154  `id` varchar(64) binary NOT NULL default '',
155  `state` enum('inactive','active') NOT NULL default 'inactive',
156  `version` varchar(64) NOT NULL default '0',
157  PRIMARY KEY  (`id`)
158) TYPE=MyISAM
159;",
160
161"
162CREATE TABLE `".PREFIX_TABLE."user_cache_categories` (
163  `user_id` smallint(5) NOT NULL default '0',
164  `cat_id` smallint(5) unsigned NOT NULL default '0',
165  `max_date_last` datetime default NULL,
166  `count_images` mediumint(8) unsigned default '0',
167  `count_categories` mediumint(8) unsigned default '0',
168  PRIMARY KEY  (`user_id`,`cat_id`)
169) TYPE=MyISAM
170;",
171
172/* TABLE DROPPED BEFORE Butterfly/Piwigo release - see later DROP IF EXISTS
173"
174CREATE TABLE `".PREFIX_TABLE."ws_access` (
175  `id` smallint(5) unsigned NOT NULL auto_increment,
176  `name` varchar(32) NOT NULL default '',
177  `access` varchar(255) default NULL,
178  `start` datetime default NULL,
179  `end` datetime default NULL,
180  `request` varchar(255) default NULL,
181  `limit` smallint(5) unsigned default NULL,
182  `comment` varchar(255) default NULL,
183  PRIMARY KEY  (`id`),
184  UNIQUE KEY `ws_access_ui1` (`name`)
185) TYPE=MyISAM COMMENT='Access for Web Services'
186;",*/
187
188"
189INSERT INTO ".PREFIX_TABLE."config
190  (param,value,comment)
191  VALUES
192  ('show_nb_hits', 'false', 'Show hits count under thumbnails')
193;",
194
195"
196INSERT INTO ".PREFIX_TABLE."config
197  (param,value,comment)
198  VALUES
199  ('history_admin','false','keep a history of administrator visits on your website')
200;",
201
202"
203INSERT INTO ".PREFIX_TABLE."config
204  (param,value,comment)
205  VALUES
206  ('history_guest','true','keep a history of guest visits on your website')
207;",
208
209"
210INSERT INTO ".PREFIX_TABLE."config
211  (param,value,comment)
212  VALUES
213  ('allow_user_registration','true','allow visitors to register?')
214;",
215
216"
217INSERT INTO ".PREFIX_TABLE."config
218  (param,value,comment)
219  VALUES
220  ('secret_key', MD5(RAND()), 'a secret key specific to the gallery for internal use')
221;",
222
223"
224INSERT INTO ".PREFIX_TABLE."config
225  (param,value,comment)
226  VALUES
227  ('nbm_send_html_mail','true','Send mail on HTML format for notification by mail')
228;",
229
230"
231INSERT INTO ".PREFIX_TABLE."config
232  (param,value,comment)
233  VALUES
234  ('nbm_send_recent_post_dates','true','Send recent post by dates for notification by mail')
235;",
236
237"
238INSERT INTO ".PREFIX_TABLE."config
239  (param,value,comment)
240  VALUES
241  ('email_admin_on_new_user','false','Send an email to theadministrators when a user registers')
242;",
243
244"
245INSERT INTO ".PREFIX_TABLE."config
246  (param,value,comment)
247  VALUES
248  ('email_admin_on_comment','false','Send an email to the administrators when a valid comment is entered')
249;",
250
251"
252INSERT INTO ".PREFIX_TABLE."config
253  (param,value,comment)
254  VALUES
255  ('email_admin_on_comment_validation','false','Send an email to the administrators when a comment requires validation')
256;",
257
258"
259INSERT INTO ".PREFIX_TABLE."config
260  (param,value,comment)
261  VALUES
262  ('email_admin_on_picture_uploaded','false','Send an email to the administrators when a picture is uploaded')
263;",
264
265"
266UPDATE ".PREFIX_TABLE."user_cache
267  SET need_update = 'true'
268;",
269
270);
271
272foreach ($queries as $query)
273{
274  pwg_query($query);
275}
276
277$replacements = array(
278  array('&#039;', '\''),
279  array('&quot;', '"'),
280  array('&lt;',   '<'),
281  array('&gt;',   '>'),
282  array('&amp;',  '&') // <- this must be the last one
283  );
284
285foreach ($replacements as $replacement)
286{
287    $query = '
288UPDATE '.PREFIX_TABLE.'comments
289  SET content = REPLACE(content, "'.
290  addslashes($replacement[0]).
291  '", "'.
292  addslashes($replacement[1]).
293  '")
294;';
295    pwg_query($query);
296}
297
298load_conf_from_db();
299
300$query = "
301UPDATE ".USER_INFOS_TABLE."
302SET
303  template = '".$conf['default_template']."',
304  nb_image_line = ".$conf['nb_image_line'].",
305  nb_line_page = ".$conf['nb_line_page'].",
306  language = '".$conf['default_language']."',
307  maxwidth = ".
308  (empty($conf['default_maxwidth']) ? "NULL" : $conf['default_maxwidth']).
309  ",
310  maxheight = ".
311  (empty($conf['default_maxheight']) ? "NULL" : $conf['default_maxheight']).
312  ",
313  recent_period = ".$conf['recent_period'].",
314  expand = '".boolean_to_string($conf['auto_expand'])."',
315  show_nb_comments = '".boolean_to_string($conf['show_nb_comments'])."',
316  show_nb_hits = '".boolean_to_string($conf['show_nb_hits'])."',
317  enabled_high = '".boolean_to_string(
318    (isset($conf['newuser_default_enabled_high']) ?
319      $conf['newuser_default_enabled_high'] : true)
320    ).
321  "'
322WHERE
323  user_id = ".$conf['default_user_id'].";";
324pwg_query($query);
325
326$query = "
327DELETE FROM ".CONFIG_TABLE."
328WHERE
329  param IN
330(
331  'default_template',
332  'nb_image_line',
333  'nb_line_page',
334  'default_language',
335  'default_maxwidth',
336  'default_maxheight',
337  'recent_period',
338  'auto_expand',
339  'show_nb_comments',
340  'show_nb_hits'
341)
342;";
343pwg_query($query);
344
345// now we upgrade from 1.7.0
346include_once(PHPWG_ROOT_PATH.'install/upgrade_1.7.0.php');
347?>
Note: See TracBrowser for help on using the repository browser.