including the new Defines.php
[mediawiki.git] / maintenance / updaters.inc
blob5538107616a493553fdeba723ec0879483c40cf3
1 <?php
3 function do_revision_updates() {
4         global $wgSoftwareRevision;
5         if ( $wgSoftwareRevision < 1001 ) {
6                 update_passwords();
7         }
10 function update_passwords() {
11         global $wgDatabase;
12         $fname = "Update script: update_passwords()";
13         print "\nIt appears that you need to update the user passwords in your\n" .
14           "database. If you have already done this (if you've run this update\n" .
15           "script once before, for example), doing so again will make all your\n" .
16           "user accounts inaccessible, so be sure you only do this once.\n" .
17           "Update user passwords? (yes/no)";
19         $resp = readconsole();
20     if ( ! ( "Y" == $resp{0} || "y" == $resp{0} ) ) { return; }
22         $sql = "SELECT user_id,user_password FROM user";
23         $source = $wgDatabase->query( $sql, $fname );
25         while ( $row = $wgDatabase->fetchObject( $source ) ) {
26                 $id = $row->user_id;
27                 $oldpass = $row->user_password;
28                 $newpass = md5( "{$id}-{$oldpass}" );
30                 $sql = "UPDATE user SET user_password='{$newpass}' " .
31                   "WHERE user_id={$id}";
32                 $wgDatabase->query( $sql, $fname );
33         }
36 function do_ipblocks_update() {
37         global $wgDatabase;
39         $do1 = $do2 = false;
41         if ( !$wgDatabase->fieldExists( "ipblocks", "ipb_id" ) ) {
42                 $do1 = true;
43         }
44         if ( !$wgDatabase->fieldExists( "ipblocks", "ipb_expiry" ) ) {
45                 $do2 = true;
46         }
48         if ( $do1 || $do2 ) {
49                 echo "Updating ipblocks table... ";
50                 if ( $do1 ) {
51                         dbsource( "maintenance/archives/patch-ipblocks.sql", $wgDatabase );
52                 }
53                 if ( $do2 ) {
54                         dbsource( "maintenance/archives/patch-ipb_expiry.sql", $wgDatabase );
55                 }
56                 echo "ok\n";
57         } else {
58                 echo "...ipblocks is up to date.\n";
59         }
60         
64 function do_interwiki_update() {
65         # Check that interwiki table exists; if it doesn't source it
66         global $wgDatabase;
67         if( $wgDatabase->tableExists( "interwiki" ) ) {
68                 echo "...already have interwiki table\n";
69                 return true;
70         }
71         echo "Creating interwiki table: ";
72         dbsource( "maintenance/archives/patch-interwiki.sql" );
73         echo "ok\n";
74         echo "Adding default interwiki definitions: ";
75         dbsource( "maintenance/interwiki.sql" );
76         echo "ok\n";
79 function do_index_update() {
80         # Check that proper indexes are in place
81         global $wgDatabase;
82         $meta = $wgDatabase->fieldInfo( "recentchanges", "rc_timestamp" );
83         if( $meta->multiple_key == 0 ) {
84                 echo "Updating indexes to 20031107: ";
85                 dbsource( "maintenance/archives/patch-indexes.sql" );
86                 echo "ok\n";
87                 return true;
88         }
89         echo "...indexes seem up to 20031107 standards\n";
90         return false;
93 function do_linkscc_update() {
94         // Create linkscc if necessary
95         global $wgDatabase;
96         if( $wgDatabase->tableExists( "linkscc" ) ) {
97                 echo "...have linkscc table.\n";
98         } else {
99                 echo "Adding linkscc table... ";
100                 dbsource( "maintenance/archives/patch-linkscc.sql", $wgDatabase );
101                 echo "ok\n";
102         }
105 function do_linkscc_1_3_update() {
106         // Update linkscc table to 1.3 schema if necessary
107         global $wgDatabase, $wgVersion;
108         if( ( strpos( "1.3", $wgVersion ) === 0 ) && $wgDatabase->tableExists( "linkscc" )
109                 && $wgDatabase->fieldExists( "linkscc", "lcc_title" ) ) {
110                 echo "Altering lcc_title field from linkscc table... ";
111                 dbsource( "maintenance/archives/patch-linkscc-1.3.sql", $wgDatabase );
112                 echo "ok\n";
113         } else {
114                 echo "...linkscc is up to date, or does not exist. Good.\n";
115         }
118 function do_hitcounter_update() {
119         // Create hitcounter if necessary
120         global $wgDatabase;
121         if( $wgDatabase->tableExists( "hitcounter" ) ) {
122                 echo "...have hitcounter table.\n";
123         } else {
124                 echo "Adding hitcounter table... ";
125                 dbsource( "maintenance/archives/patch-hitcounter.sql", $wgDatabase );
126                 echo "ok\n";
127         }
130 function do_recentchanges_update() {
131         global $wgDatabase;
132         if ( !$wgDatabase->fieldExists( "recentchanges", "rc_type" ) ) {
133                 echo "Adding rc_type, rc_moved_to_ns, rc_moved_to_title...";
134                 dbsource( "maintenance/archives/patch-rc_type.sql" , $wgDatabase );
135                 echo "ok\n";
136         }
137         if ( !$wgDatabase->fieldExists( "recentchanges", "rc_ip" ) ) {
138                 echo "Adding rc_ip...";
139                 dbsource( "maintenance/archives/patch-rc_ip.sql", $wgDatabase );
140                 echo "ok\n";
141         }
144 function do_user_real_name_update() {
145         global $wgDatabase;
146         if ( $wgDatabase->fieldExists( "user", "user_real_name" ) ) {
147                 echo "...have user_real_name field in user table.\n";
148         } else {
149                 echo "Adding user_real_name field to table user...";
150                 dbsource( "maintenance/archives/patch-user-realname.sql" , $wgDatabase );
151                 echo "ok\n";
152         }
155 function do_querycache_update() {
156         global $wgDatabase;
157         if( $wgDatabase->tableExists( "querycache" ) ) {
158                 echo "...have special page querycache table.\n";
159         } else {
160                 echo "Adding querycache table for slow special pages... ";
161                 dbsource( "maintenance/archives/patch-querycache.sql", $wgDatabase );
162                 echo "ok\n";
163         }
166 function do_objectcache_update() {
167         global $wgDatabase;
168         if( $wgDatabase->tableExists( "objectcache" ) ) {
169                 echo "...have objectcache table.\n";
170         } else {
171                 echo "Adding objectcache table for message caching... ";
172                 dbsource( "maintenance/archives/patch-objectcache.sql", $wgDatabase );
173                 echo "ok\n";
174         }
177 function do_categorylinks_update() {
178         global $wgDatabase;
179         if( $wgDatabase->tableExists( "categorylinks" ) ) {
180                 echo "...have categorylinks table.\n";
181         } else {
182                 echo "Adding categorylinks table for category management... ";
183                 dbsource( "maintenance/archives/patch-categorylinks.sql", $wgDatabase );
184                 echo "ok\n";
185         }
188 function do_image_name_unique_update() {
189         global $wgDatabase;
190         if ( $wgDatabase->indexUnique( 'image', 'img_name' ) ) {
191                 echo "...img_name already unique.\n";
192         } else {
193                 echo "Making the img_name index unique... ";
194                 dbsource( "maintenance/archives/patch-image_name_unique.sql", $wgDatabase );
195                 echo "ok\n";
196         }