Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
0.00% |
0 / 50 |
|
0.00% |
0 / 1 |
CRAP | |
0.00% |
0 / 1 |
InstallHandler | |
0.00% |
0 / 50 |
|
0.00% |
0 / 1 |
12 | |
0.00% |
0 / 1 |
onLoadExtensionSchemaUpdates | |
0.00% |
0 / 50 |
|
0.00% |
0 / 1 |
12 |
1 | <?php |
2 | |
3 | namespace MediaWiki\Extension\SecurePoll\HookHandler; |
4 | |
5 | use MediaWiki\Installer\Hook\LoadExtensionSchemaUpdatesHook; |
6 | |
7 | class InstallHandler implements LoadExtensionSchemaUpdatesHook { |
8 | /** |
9 | * @inheritDoc |
10 | */ |
11 | public function onLoadExtensionSchemaUpdates( $updater ) { |
12 | $base = dirname( dirname( __DIR__ ) ); |
13 | $type = $updater->getDB()->getType(); |
14 | |
15 | $updater->addExtensionTable( 'securepoll_entity', "$base/sql/$type/tables-generated.sql" ); |
16 | |
17 | switch ( $type ) { |
18 | case 'mysql': |
19 | // 1.39 |
20 | $updater->modifyExtensionField( |
21 | 'securepoll_elections', |
22 | 'el_end_date', |
23 | "$base/sql/$type/patch-securepoll_elections-timestamps.sql" |
24 | ); |
25 | $updater->modifyExtensionField( |
26 | 'securepoll_votes', |
27 | 'vote_timestamp', |
28 | "$base/sql/$type/patch-securepoll_votes-timestamp.sql" |
29 | ); |
30 | $updater->modifyExtensionField( |
31 | 'securepoll_strike', |
32 | 'st_timestamp', |
33 | "$base/sql/$type/patch-securepoll_strike-timestamp.sql" |
34 | ); |
35 | $updater->modifyExtensionField( |
36 | 'securepoll_cookie_match', |
37 | 'cm_timestamp', |
38 | "$base/sql/$type/patch-securepoll_cookie_match-timestamp.sql" |
39 | ); |
40 | break; |
41 | case 'postgres': |
42 | // 1.39 |
43 | $updater->addExtensionUpdate( [ |
44 | 'changeField', |
45 | 'securepoll_votes', 'vote_timestamp', 'TIMESTAMPTZ', 'th_timestamp::timestamp with time zone' |
46 | ] ); |
47 | $updater->addExtensionUpdate( [ 'dropFkey', 'securepoll_msgs', 'msg_entity' ] ); |
48 | $updater->addExtensionUpdate( [ 'dropFkey', 'securepoll_elections', 'msg_entel_entityity' ] ); |
49 | $updater->addExtensionUpdate( [ 'dropFkey', 'securepoll_voters', 'voter_election' ] ); |
50 | $updater->addExtensionUpdate( [ 'dropFkey', 'securepoll_votes', 'vote_election' ] ); |
51 | $updater->addExtensionUpdate( [ 'dropFkey', 'securepoll_votes', 'vote_voter' ] ); |
52 | $updater->addExtensionUpdate( [ 'dropFkey', 'securepoll_strike', 'st_vote' ] ); |
53 | $updater->addExtensionUpdate( [ 'dropFkey', 'securepoll_cookie_match', 'cm_election' ] ); |
54 | $updater->addExtensionUpdate( [ 'dropFkey', 'securepoll_cookie_match', 'cm_voter_1' ] ); |
55 | $updater->addExtensionUpdate( [ 'dropFkey', 'securepoll_cookie_match', 'cm_voter_2' ] ); |
56 | $updater->dropExtensionIndex( |
57 | 'securepoll_msgs', 'securepoll_msgs_pkey', "$base/sql/$type/patch-securepoll_msgs-drop-pk.sql" |
58 | ); |
59 | break; |
60 | } |
61 | |
62 | // 1.40 |
63 | $updater->dropExtensionIndex( |
64 | 'securepoll_msgs', 'spmsg_entity', "$base/sql/$type/patch-securepoll_msgs-unique-to-pk.sql" |
65 | ); |
66 | $updater->dropExtensionIndex( |
67 | 'securepoll_properties', 'sppr_entity', "$base/sql/$type/patch-securepoll_properties-unique-to-pk.sql" |
68 | ); |
69 | |
70 | $updater->addPostDatabaseUpdateMaintenance( \UpdateNotBlockedKey::class ); |
71 | } |
72 | } |