source: trunk/upgrade_feed.php @ 996

Last change on this file since 996 was 953, checked in by plg, 19 years ago
  • new: system to notify and upgrade database among developers
File size: 3.8 KB
Line 
1<?php
2// +-----------------------------------------------------------------------+
3// | PhpWebGallery - a PHP based picture gallery                           |
4// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
5// | Copyright (C) 2003-2005 PhpWebGallery Team - http://phpwebgallery.net |
6// +-----------------------------------------------------------------------+
7// | branch        : BSF (Best So Far)
8// | file          : $RCSfile$
9// | last update   : $Date: 2005-09-21 00:04:57 +0200 (mer, 21 sep 2005) $
10// | last modifier : $Author: plg $
11// | revision      : $Revision: 870 $
12// +-----------------------------------------------------------------------+
13// | This program is free software; you can redistribute it and/or modify  |
14// | it under the terms of the GNU General Public License as published by  |
15// | the Free Software Foundation                                          |
16// |                                                                       |
17// | This program is distributed in the hope that it will be useful, but   |
18// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
19// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
20// | General Public License for more details.                              |
21// |                                                                       |
22// | You should have received a copy of the GNU General Public License     |
23// | along with this program; if not, write to the Free Software           |
24// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
25// | USA.                                                                  |
26// +-----------------------------------------------------------------------+
27
28define('PHPWG_ROOT_PATH', './');
29
30include_once(PHPWG_ROOT_PATH.'include/functions.inc.php');
31include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
32include(PHPWG_ROOT_PATH.'include/template.php');
33include(PHPWG_ROOT_PATH.'include/mysql.inc.php');
34
35define('PREFIX_TABLE', $prefixeTable);
36define('UPGRADES_PATH', PHPWG_ROOT_PATH.'install/db');
37
38// +-----------------------------------------------------------------------+
39// |                         Database connection                           |
40// +-----------------------------------------------------------------------+
41
42mysql_connect($cfgHote, $cfgUser, $cfgPassword)
43or die("Could not connect to database server");
44mysql_select_db($cfgBase)
45or die("Could not connect to database");
46
47// +-----------------------------------------------------------------------+
48// |                              Upgrades                                 |
49// +-----------------------------------------------------------------------+
50
51// retrieve already applied upgrades
52$query = '
53SELECT id
54  FROM '.PREFIX_TABLE.'upgrade
55;';
56$applied = array_from_query($query, 'id');
57
58// retrieve existing upgrades
59$existing = array();
60
61if ($contents = opendir(UPGRADES_PATH))
62{
63  while (($node = readdir($contents)) !== false)
64  {
65    if (is_file(UPGRADES_PATH.'/'.$node)
66        and preg_match('/^(.*?)-database\.php$/', $node, $match))
67    {
68      array_push($existing, $match[1]);
69    }
70  }
71}
72natcasesort($existing);
73
74// which upgrades need to be applied?
75$to_apply = array_diff($existing, $applied);
76
77echo '<pre>';
78echo count($to_apply).' upgrades to apply';
79
80foreach ($to_apply as $upgrade_id)
81{
82  unset($upgrade_description);
83 
84  echo "\n\n";
85  echo '=== upgrade '.$upgrade_id."\n";
86
87  // include & execute upgrade script. Each upgrade script must contain
88  // $upgrade_description variable which describe briefly what the upgrade
89  // script does.
90  include(UPGRADES_PATH.'/'.$upgrade_id.'-database.php');
91
92  // notify upgrade
93  $query = '
94INSERT INTO '.PREFIX_TABLE.'upgrade
95  (id, applied, description)
96  VALUES
97  (\''.$upgrade_id.'\', NOW(), \''.$upgrade_description.'\')
98;';
99  pwg_query($query);
100}
101
102echo '</pre>';
103?>
Note: See TracBrowser for help on using the repository browser.