r94799 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r94798‎ | r94799 | r94800 >
Date:19:27, 17 August 2011
Author:reedy
Status:ok
Tags:
Comment:
Severely simplify the ArticleFeedback updater hook

Part of
* (bug 30426) Complicated database schema update procedure will make enabling AF on a new wiki (that can't use update.php) a PITA
Modified paths:
  • /trunk/extensions/ArticleFeedback/ArticleFeedback.hooks.php (modified) (history)

Diff [purge]

Index: trunk/extensions/ArticleFeedback/ArticleFeedback.hooks.php
@@ -7,7 +7,7 @@
88 */
99
1010 class ArticleFeedbackHooks {
11 -
 11+
1212 protected static $modules = array(
1313 'ext.articleFeedback.startup' => array(
1414 'scripts' => 'ext.articleFeedback/ext.articleFeedback.startup.js',
@@ -121,11 +121,15 @@
122122 ),
123123 ),
124124 );
125 -
 125+
126126 /* Static Methods */
127 -
 127+
128128 /**
129129 * LoadExtensionSchemaUpdates hook
 130+ *
 131+ * @param $updater DatabaseUpdater
 132+ *
 133+ * @return bool
130134 */
131135 public static function loadExtensionSchemaUpdates( $updater = null ) {
132136 if ( $updater === null ) {
@@ -137,44 +141,42 @@
138142 } else {
139143 $dir = dirname( __FILE__ );
140144 $db = $updater->getDB();
141 - if ( !$db->tableExists( 'article_feedback' ) ) {
 145+
 146+ if ( $db->tableExists( 'article_assessment' ) ) {
142147 // Rename tables
143 - if ( $db->tableExists( 'article_assessment' ) ) {
144 - $updater->addExtensionUpdate( array(
145 - 'addTable',
146 - 'article_feedback',
147 - $dir . '/sql/RenameTables.sql',
148 - true
149 - ) );
150 - } else {
151 - // Initial install tables
152 - $updater->addExtensionUpdate( array(
153 - 'addTable',
154 - 'article_feedback',
155 - $dir . '/sql/ArticleFeedback.sql',
156 - true
157 - ) );
158 - }
159 - }
160 - if ( !$db->fieldExists( 'article_feedback', 'aa_design_bucket', __METHOD__ ) ) {
161148 $updater->addExtensionUpdate( array(
162 - 'addField',
 149+ 'addTable',
163150 'article_feedback',
164 - 'aa_design_bucket',
165 - $dir . '/sql/AddRatingBucket.sql',
 151+ $dir . '/sql/RenameTables.sql',
166152 true
167153 ) );
168 - }
169 - if ( !$db->fieldExists( 'article_feedback_properties', 'afp_value_text', __METHOD__ ) ) {
 154+ } else {
 155+ // Initial install tables
170156 $updater->addExtensionUpdate( array(
171 - 'addField',
172 - 'article_feedback_properties',
173 - 'afp_value_text',
174 - $dir . '/sql/AddPropertiesValueText.sql',
 157+ 'addTable',
 158+ 'article_feedback',
 159+ $dir . '/sql/ArticleFeedback.sql',
175160 true
176161 ) );
177162 }
 163+
178164 $updater->addExtensionUpdate( array(
 165+ 'addField',
 166+ 'article_feedback',
 167+ 'aa_design_bucket',
 168+ $dir . '/sql/AddRatingBucket.sql',
 169+ true
 170+ ) );
 171+
 172+ $updater->addExtensionUpdate( array(
 173+ 'addField',
 174+ 'article_feedback_properties',
 175+ 'afp_value_text',
 176+ $dir . '/sql/AddPropertiesValueText.sql',
 177+ true
 178+ ) );
 179+
 180+ $updater->addExtensionUpdate( array(
179181 'addTable',
180182 'article_feedback_properties',
181183 $dir . '/sql/AddPropertiesTable.sql',
@@ -196,53 +198,30 @@
197199 $dir . '/sql/AddRevisionsTable.sql',
198200 true
199201 ) );
200 -
201 - if ( $db->tableExists( 'article_feedback_stats_highs_lows') ) {
202 - if ( !$db->tableExists( 'article_feedback_stats_types' )) {
203 - // add article_feedback_stats_type if necessaray
204 - $updater->addExtensionUpdate( array(
205 - 'addTable',
206 - 'article_feedback_stats_types',
207 - $dir . '/sql/AddArticleFeedbackStatsTypeTable.sql',
208 - true
209 - ) );
210 - }
211 -
212 - $updater->addExtensionUpdate( array(
213 - 'addTable',
214 - 'article_feedback_stats',
215 - $dir . '/sql/AddArticleFeedbackStatsTable.sql',
216 - true
217 - ) );
218 -
219 - // migrate article_feedback_stats_highs_lows to article_feedback_stats
220 - $updater->addExtensionUpdate( array(
221 - 'applyPatch',
222 - $dir . '/sql/MigrateArticleFeedbackStatsHighsLows.sql',
223 - true
224 - ) );
225 - } else {
226 - // add article_feedback_stats and article_feedback_stats_type
227 - if ( !$db->tableExists( 'article_feedback_stats_types' )) {
228 - $updater->addExtensionUpdate( array(
229 - 'addTable',
230 - 'article_feedback_stats_types',
231 - $dir . '/sql/AddArticleFeedbackStatsTypeTable.sql',
232 - true
233 - ) );
234 - }
235 -
236 - if ( !$db->tableExists( 'article_feedback_stats' )) {
237 - $updater->addExtensionUpdate( array(
238 - 'addTable',
239 - 'article_feedback_stats',
240 - $dir . '/sql/AddArticleFeedbackStatsTable.sql',
241 - true
242 - ) );
243 - }
244 - }
245 -
 202+
 203+ // add article_feedback_stats_type if necessaray
246204 $updater->addExtensionUpdate( array(
 205+ 'addTable',
 206+ 'article_feedback_stats_types',
 207+ $dir . '/sql/AddArticleFeedbackStatsTypeTable.sql',
 208+ true
 209+ ) );
 210+
 211+ $updater->addExtensionUpdate( array(
 212+ 'addTable',
 213+ 'article_feedback_stats',
 214+ $dir . '/sql/AddArticleFeedbackStatsTable.sql',
 215+ true
 216+ ) );
 217+
 218+ // migrate article_feedback_stats_highs_lows to article_feedback_stats
 219+ $updater->addExtensionUpdate( array(
 220+ 'applyPatch',
 221+ $dir . '/sql/MigrateArticleFeedbackStatsHighsLows.sql',
 222+ true
 223+ ) );
 224+
 225+ $updater->addExtensionUpdate( array(
247226 'addIndex',
248227 'article_feedback',
249228 'article_feedback_timestamp',
@@ -252,7 +231,7 @@
253232 }
254233 return true;
255234 }
256 -
 235+
257236 /**
258237 * ParserTestTables hook
259238 */
@@ -264,7 +243,7 @@
265244 $tables[] = 'article_feedback_properties';
266245 return true;
267246 }
268 -
 247+
269248 /**
270249 * BeforePageDisplay hook
271250 */
@@ -272,7 +251,7 @@
273252 $out->addModules( 'ext.articleFeedback.startup' );
274253 return true;
275254 }
276 -
 255+
277256 /*
278257 * ResourceLoaderRegisterModules hook
279258 */
@@ -287,7 +266,7 @@
288267 }
289268 return true;
290269 }
291 -
 270+
292271 /*
293272 * ResourceLoaderGetConfigVars hook
294273 */
@@ -309,7 +288,7 @@
310289 $vars['wgArticleFeedbackWhatsThisPage'] = wfMsgForContent( 'articlefeedback-form-panel-explanation-link' );
311290 return true;
312291 }
313 -
 292+
314293 /**
315294 * Add the preference in the user preferences with the GetPreferences hook.
316295 * @param $user User

Follow-up revisions

RevisionCommit summaryAuthorDate
r94802Bug 30426 - Complicated database schema update procedure will make enabling A...reedy19:40, 17 August 2011

Status & tagging log