PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.2.0
Independent Analytics – WordPress Analytics Plugin v2.2.0
2.15.0 2.14.10 trunk 1.1 1.10 1.10.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.17.1 1.17.2 1.17.3 1.17.4 1.18 1.18.1 1.19.0 1.19.1 1.2 1.20.0 1.21.0 1.22.0 1.22.1 1.23.0 1.23.1 1.24.0 1.24.1 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.28.1 1.28.2 1.28.3 1.29.0 1.3 1.30.0 1.30.1 1.4 1.5 1.6 1.7 1.8 1.9 2.0.0 2.0.1 2.1.4 2.1.5 2.1.6 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.10 2.11.2 2.11.3 2.11.4 2.11.5 2.11.6 2.11.7 2.11.8 2.11.9 2.12.0 2.12.1 2.12.2 2.13.1 2.13.2 2.13.5 2.13.6 2.14.0 2.14.1 2.14.2 2.14.4 2.14.6 2.14.7 2.14.8 2.14.9 2.2.0 2.2.1 2.3.1 2.3.2 2.4.2 2.4.3 2.5.0 2.5.1 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.7.0 2.7.1 2.7.2 2.7.3 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7
independent-analytics / IAWP / Migrations / Migration_10.php
independent-analytics / IAWP / Migrations Last commit date
Migration.php 2 years ago Migration_10.php 2 years ago Migration_11.php 2 years ago Migration_12.php 2 years ago Migration_13.php 2 years ago Migration_14.php 2 years ago Migration_15.php 2 years ago Migration_16.php 2 years ago Migration_17.php 2 years ago Migration_18.php 2 years ago Migration_19.php 2 years ago Migration_1_0.php 2 years ago Migration_1_6.php 2 years ago Migration_1_8.php 2 years ago Migration_1_9.php 2 years ago Migration_2.php 2 years ago Migration_20.php 2 years ago Migration_21.php 2 years ago Migration_22.php 2 years ago Migration_23.php 2 years ago Migration_24.php 2 years ago Migration_25.php 2 years ago Migration_26.php 2 years ago Migration_27.php 2 years ago Migration_3.php 2 years ago Migration_4.php 2 years ago Migration_5.php 2 years ago Migration_6.php 2 years ago Migration_7.php 2 years ago Migration_8.php 2 years ago Migration_9.php 2 years ago Migration_Job.php 2 years ago Migrations.php 2 years ago Step_Migration.php 2 years ago
Migration_10.php
48 lines
1 <?php
2
3 namespace IAWP_SCOPED\IAWP\Migrations;
4
5 use IAWP_SCOPED\IAWP\Known_Referrers;
6 use IAWP_SCOPED\IAWP\Query;
7 /** @internal */
8 class Migration_10 extends Migration
9 {
10 /**
11 * @var string
12 */
13 protected $database_version = '10';
14 /**
15 * @return void
16 */
17 protected function migrate() : void
18 {
19 global $wpdb;
20 $views_table = Query::get_table_name(Query::VIEWS);
21 $wc_orders_table = Query::get_table_name(Query::WC_ORDERS);
22 $sessions_table = Query::get_table_name(Query::SESSIONS);
23 $referrer_groups_table = Query::get_table_name(Query::REFERRER_GROUPS);
24 $referrers_table = Query::get_table_name(Query::REFERRERS);
25 $wpdb->query("\n UPDATE {$referrers_table} SET domain = SUBSTRING(domain, 1, 255) WHERE LENGTH(domain) > 255;\n ");
26 $wpdb->query("\n ALTER TABLE {$referrers_table} MODIFY COLUMN domain VARCHAR(255) NOT NULL;\n ");
27 $wpdb->query("\n UPDATE {$referrer_groups_table} SET name = SUBSTRING(name, 1, 255) WHERE LENGTH(name) > 255;\n ");
28 $wpdb->query("\n ALTER TABLE {$referrer_groups_table} MODIFY COLUMN name VARCHAR(255) NOT NULL;\n ");
29 $wpdb->query("\n UPDATE {$referrer_groups_table} SET domain = SUBSTRING(domain, 1, 255) WHERE LENGTH(domain) > 255;\n ");
30 $wpdb->query("\n ALTER TABLE {$referrer_groups_table} MODIFY COLUMN domain VARCHAR(255) NOT NULL;\n ");
31 $wpdb->query("\n UPDATE {$referrer_groups_table} SET domain_to_match = SUBSTRING(domain_to_match, 1, 255) WHERE LENGTH(domain_to_match) > 255;\n ");
32 $wpdb->query("\n ALTER TABLE {$referrer_groups_table} MODIFY COLUMN domain_to_match VARCHAR(255) NOT NULL;\n ");
33 $wpdb->query("\n CREATE INDEX views_viewed_at_index\n ON {$views_table} (viewed_at);\n ");
34 $wpdb->query("\n CREATE INDEX views_resource_id_index\n ON {$views_table} (resource_id);\n ");
35 $wpdb->query("\n CREATE INDEX wc_orders_view_id_index\n ON {$wc_orders_table} (view_id);\n ");
36 $wpdb->query("\n CREATE INDEX wc_orders_created_at_index\n ON {$wc_orders_table} (created_at);\n ");
37 $wpdb->query("\n CREATE INDEX sessions_created_at_index\n ON {$sessions_table} (created_at);\n ");
38 // Remove any duplicate referrer groups where a given domain_to_match already exists
39 $wpdb->query("\n DELETE referrer_groups FROM {$referrer_groups_table} AS referrer_groups\n INNER JOIN (\n SELECT\n domain_to_match,\n MIN(referrer_group_id) AS min_referrer_group_id\n FROM\n {$referrer_groups_table}\n GROUP BY\n domain_to_match\n HAVING\n COUNT(*) > 1) AS duplicates ON referrer_groups.domain_to_match = duplicates.domain_to_match\n AND referrer_groups.referrer_group_id > duplicates.min_referrer_group_id;\n ");
40 $wpdb->query("\n CREATE UNIQUE INDEX referrer_groups_domain_to_match_index\n ON {$referrer_groups_table} (domain_to_match);\n ");
41 $wpdb->query("\n UPDATE\n {$sessions_table} AS sessions\n INNER JOIN {$referrers_table} AS referrers ON sessions.referrer_id = referrers.id\n INNER JOIN (\n SELECT\n MIN(referrers.id) AS min_referrer_id,\n referrers.domain\n FROM\n {$sessions_table} AS sessions\n INNER JOIN {$referrers_table} AS referrers ON sessions.referrer_id = referrers.id\n GROUP BY\n referrers.domain) AS matcher ON referrers.domain = matcher.domain\n AND referrers.id != matcher.min_referrer_id SET sessions.referrer_id = matcher.min_referrer_id;\n ");
42 $wpdb->query("\n DELETE referrers FROM {$referrers_table} AS referrers\n LEFT JOIN {$sessions_table} AS sessions ON referrers.id = sessions.referrer_id\n WHERE sessions.session_id IS NULL;\n ");
43 $wpdb->query("\n CREATE UNIQUE INDEX referrers_domain_index\n ON {$referrers_table} (domain);\n ");
44 $wpdb->query("\n ALTER TABLE {$referrer_groups_table} MODIFY COLUMN type ENUM ('Search', 'Social', 'Referrer') NOT NULL;\n ");
45 Known_Referrers::replace_known_referrers_table();
46 }
47 }
48