Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
0.00% |
0 / 161 |
|
0.00% |
0 / 1 |
CRAP | |
0.00% |
0 / 1 |
FlaggedRevsUpdaterHooks | |
0.00% |
0 / 161 |
|
0.00% |
0 / 1 |
20 | |
0.00% |
0 / 1 |
onLoadExtensionSchemaUpdates | |
0.00% |
0 / 161 |
|
0.00% |
0 / 1 |
20 |
1 | <?php |
2 | // phpcs:disable MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName |
3 | |
4 | use MediaWiki\Installer\Hook\LoadExtensionSchemaUpdatesHook; |
5 | |
6 | /** |
7 | * Class containing updater functions for a FlaggedRevs environment |
8 | */ |
9 | class FlaggedRevsUpdaterHooks implements |
10 | LoadExtensionSchemaUpdatesHook |
11 | { |
12 | |
13 | /** |
14 | * @inheritDoc |
15 | */ |
16 | public function onLoadExtensionSchemaUpdates( $du ) { |
17 | $dbType = $du->getDB()->getType(); |
18 | $du->dropExtensionTable( 'flaggedimages' ); |
19 | |
20 | // Initial install tables (current schema) |
21 | $du->addExtensionTable( 'flaggedrevs', __DIR__ . "/$dbType/tables-generated.sql" ); |
22 | |
23 | if ( $dbType == 'mysql' ) { |
24 | $base = __DIR__ . '/mysql'; |
25 | |
26 | // 1.38 |
27 | $du->dropExtensionField( |
28 | 'flaggedrevs', |
29 | 'fr_img_name', |
30 | "$base/patch-drop-fr_img.sql" |
31 | ); |
32 | |
33 | // 1.39 |
34 | $du->dropExtensionField( |
35 | 'flaggedpage_config', |
36 | 'fpc_select', |
37 | "$base/patch-drop-fpc_select.sql" |
38 | ); |
39 | $du->modifyExtensionField( |
40 | 'flaggedpages', |
41 | 'fp_pending_since', |
42 | "$base/patch-flaggedpages-timestamp.sql" |
43 | ); |
44 | $du->modifyExtensionField( |
45 | 'flaggedrevs', |
46 | 'fr_timestamp', |
47 | "$base/patch-flaggedrevs-timestamps.sql" |
48 | ); |
49 | $du->modifyExtensionField( |
50 | 'flaggedrevs_statistics', |
51 | 'frs_timestamp', |
52 | "$base/patch-flaggedrevs_statistics-timestamp.sql" |
53 | ); |
54 | $du->modifyExtensionField( |
55 | 'flaggedpage_config', |
56 | 'fpc_expiry', |
57 | "$base/patch-flaggedpage_config-timestamp.sql" |
58 | ); |
59 | } elseif ( $dbType == 'postgres' ) { |
60 | $base = __DIR__ . '/postgres'; |
61 | |
62 | // 1.38 |
63 | $du->addExtensionUpdate( |
64 | [ 'dropPgIndex', 'flaggedrevs', 'fr_img_sha1' ] |
65 | ); |
66 | $du->addExtensionUpdate( |
67 | [ 'dropPgField', 'flaggedrevs', 'fr_img_name' ] |
68 | ); |
69 | $du->addExtensionUpdate( |
70 | [ 'dropPgField', 'flaggedrevs', 'fr_img_timestamp' ] |
71 | ); |
72 | $du->addExtensionUpdate( |
73 | [ 'dropPgField', 'flaggedrevs', 'fr_img_sha1' ] |
74 | ); |
75 | |
76 | // 1.39 |
77 | $du->addExtensionUpdate( |
78 | [ 'dropPgField', 'flaggedpage_config', 'fpc_select' ] |
79 | ); |
80 | $du->addExtensionUpdate( [ |
81 | 'dropDefault', 'flaggedpages', 'fp_page_id' |
82 | ] ); |
83 | $du->addExtensionUpdate( [ |
84 | 'dropDefault', 'flaggedpages', 'fp_stable' |
85 | ] ); |
86 | $du->addExtensionUpdate( [ |
87 | 'changeField', 'flaggedpages', 'fp_page_id', 'INT', '' |
88 | ] ); |
89 | $du->addExtensionUpdate( [ |
90 | 'changeField', 'flaggedpages', 'fp_reviewed', 'SMALLINT', 'fp_reviewed::SMALLINT DEFAULT 0' |
91 | ] ); |
92 | $du->addExtensionUpdate( [ |
93 | 'changeField', 'flaggedpages', 'fp_stable', 'INT', '' |
94 | ] ); |
95 | $du->addExtensionUpdate( [ |
96 | 'changeField', 'flaggedpages', 'fp_quality', 'SMALLINT', '' |
97 | ] ); |
98 | $du->addExtensionUpdate( [ |
99 | 'dropDefault', 'flaggedrevs', 'fr_rev_id' |
100 | ] ); |
101 | $du->addExtensionUpdate( [ |
102 | 'dropDefault', 'flaggedrevs', 'fr_page_id' |
103 | ] ); |
104 | $du->addExtensionUpdate( [ |
105 | 'dropDefault', 'flaggedrevs', 'fr_tags' |
106 | ] ); |
107 | $du->addExtensionUpdate( [ |
108 | 'changeNullableField', 'flaggedrevs', 'fr_user', 'NOT NULL', true |
109 | ] ); |
110 | $du->addExtensionUpdate( [ |
111 | 'changeNullableField', 'flaggedrevs', 'fr_timestamp', 'NOT NULL', true |
112 | ] ); |
113 | $du->addExtensionUpdate( [ |
114 | 'renameIndex', 'flaggedrevs', 'page_rev', 'fr_page_rev' |
115 | ] ); |
116 | $du->addExtensionUpdate( [ |
117 | 'renameIndex', 'flaggedrevs', 'page_time', 'fr_page_time' |
118 | ] ); |
119 | $du->addExtensionUpdate( [ |
120 | 'renameIndex', 'flaggedrevs', 'page_qal_rev', 'fr_page_qal_rev' |
121 | ] ); |
122 | $du->addExtensionUpdate( [ |
123 | 'renameIndex', 'flaggedrevs', 'page_qal_time', 'fr_page_qal_time' |
124 | ] ); |
125 | $du->addExtensionUpdate( [ |
126 | 'changeField', 'flaggedrevs', 'fr_rev_id', 'INT', '' |
127 | ] ); |
128 | $du->addExtensionUpdate( [ |
129 | 'changeField', 'flaggedrevs', 'fr_page_id', 'INT', '' |
130 | ] ); |
131 | $du->addExtensionUpdate( [ |
132 | 'changeField', 'flaggedrevs', 'fr_user', 'INT', '' |
133 | ] ); |
134 | $du->addExtensionUpdate( [ |
135 | 'changeField', 'flaggedrevs', 'fr_quality', 'SMALLINT', 'fr_quality::SMALLINT DEFAULT 0' |
136 | ] ); |
137 | $du->addExtensionUpdate( [ |
138 | 'dropDefault', 'flaggedpage_config', 'fpc_page_id' |
139 | ] ); |
140 | $du->addExtensionUpdate( [ |
141 | 'changeNullableField', 'flaggedpage_config', 'fpc_expiry', 'NOT NULL', true |
142 | ] ); |
143 | $du->addExtensionUpdate( [ |
144 | 'changeField', 'flaggedpage_config', 'fpc_page_id', 'INT', '' |
145 | ] ); |
146 | $du->addExtensionUpdate( [ |
147 | 'changeField', 'flaggedpage_config', 'fpc_override', 'SMALLINT', '' |
148 | ] ); |
149 | $du->addExtensionUpdate( [ |
150 | 'renameIndex', 'flaggedrevs_tracking', 'namespace_title_from', 'frt_namespace_title_from' |
151 | ] ); |
152 | $du->addExtensionUpdate( [ |
153 | 'changeField', 'flaggedrevs_tracking', 'ftr_from', 'INT', 'ftr_from::INT DEFAULT 0' |
154 | ] ); |
155 | $du->addExtensionUpdate( [ |
156 | 'changeField', 'flaggedrevs_tracking', 'ftr_namespace', 'INT', 'ftr_namespace::INT DEFAULT 0' |
157 | ] ); |
158 | $du->dropExtensionIndex( |
159 | 'flaggedrevs_tracking', 'flaggedrevs_tracking_pkey', "$base/patch-flaggedrevs_tracking-drop-pk.sql" |
160 | ); |
161 | $du->addExtensionUpdate( [ |
162 | 'dropDefault', 'flaggedrevs_promote', 'frp_user_id' |
163 | ] ); |
164 | $du->addExtensionUpdate( [ |
165 | 'dropDefault', 'flaggedrevs_promote', 'frp_user_params' |
166 | ] ); |
167 | $du->addExtensionUpdate( [ |
168 | 'changeField', 'flaggedrevs_promote', 'frp_user_id', 'INT', '' |
169 | ] ); |
170 | } elseif ( $dbType == 'sqlite' ) { |
171 | $base = __DIR__ . '/sqlite'; |
172 | |
173 | // 1.38 |
174 | $du->dropExtensionField( |
175 | 'flaggedrevs', |
176 | 'fr_img_name', |
177 | "$base/patch-drop-fr_img.sql" |
178 | ); |
179 | |
180 | // 1.39 |
181 | $du->dropExtensionField( |
182 | 'flaggedpage_config', |
183 | 'fpc_select', |
184 | "$base/patch-drop-fpc_select.sql" |
185 | ); |
186 | } |
187 | |
188 | // 1.40 |
189 | $du->dropExtensionIndex( |
190 | 'flaggedrevs_tracking', |
191 | 'frt_from_namespace_title', |
192 | __DIR__ . "/$dbType/patch-flaggedrevs_tracking-unique-to-pk.sql" |
193 | ); |
194 | // 1.42 |
195 | $du->dropExtensionTable( 'flaggedtemplates' ); |
196 | $du->dropExtensionTable( 'flaggedpage_pending' ); |
197 | } |
198 | } |