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_7.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_7.php
42 lines
1 <?php
2
3 namespace IAWP_SCOPED\IAWP\Migrations;
4
5 use IAWP_SCOPED\IAWP\Query;
6 /** @internal */
7 class Migration_7 extends Migration
8 {
9 /**
10 * @var string
11 */
12 protected $database_version = '7';
13 /**
14 * @return void
15 */
16 protected function migrate() : void
17 {
18 global $wpdb;
19 \update_option('iawp_need_clear_cache', \true);
20 $charset_collate = $wpdb->get_charset_collate();
21 $sessions_table = Query::get_table_name(Query::SESSIONS);
22 $views_table = Query::get_table_name(Query::VIEWS);
23 $visitors_table = Query::get_table_name(Query::VISITORS);
24 $wpdb->query("DROP TABLE IF EXISTS {$sessions_table};");
25 $wpdb->query("CREATE TABLE {$sessions_table} (\n session_id bigint(20) UNSIGNED AUTO_INCREMENT,\n visitor_id varchar(32),\n initial_view_id bigint(20) UNSIGNED,\n referrer_id bigint(20) UNSIGNED,\n campaign_id bigint(20) UNSIGNED,\n created_at datetime NOT NULL,\n legacy_view boolean DEFAULT false NOT NULL,\n PRIMARY KEY (session_id)\n ) {$charset_collate};");
26 $wpdb->query("\n ALTER TABLE {$views_table}\n ADD (\n session_id bigint(20) UNSIGNED\n ),\n ADD INDEX (visitor_id);\n ");
27 $wpdb->query("\n INSERT INTO {$sessions_table} (visitor_id, initial_view_id, referrer_id, campaign_id, created_at, legacy_view)\n SELECT IF(visitors.visitor_token = '', NULL, LEFT(visitors.visitor_token, 32)) AS visitor_id,\n views.id AS initial_view_id,\n views.referrer_id,\n views.campaign_id,\n views.viewed_at AS created_at,\n 1 AS legacy_view\n FROM {$views_table} AS views\n LEFT JOIN {$visitors_table} AS visitors ON views.visitor_id = visitors.id;\n ");
28 // Add the indices after bulk insert
29 $wpdb->query("\n ALTER TABLE {$sessions_table}\n ADD INDEX(visitor_id),\n ADD INDEX(initial_view_id),\n ADD INDEX(referrer_id),\n ADD INDEX(campaign_id);\n ");
30 $wpdb->query("\n UPDATE\n {$views_table} AS views\n INNER JOIN {$sessions_table} AS sessions ON views.id = sessions.initial_view_id\n SET\n views.session_id = sessions.session_id;\n ");
31 $wpdb->query("\n ALTER TABLE {$views_table} DROP COLUMN referrer_id, DROP INDEX visitor_id, DROP COLUMN visitor_id, DROP COLUMN campaign_id, ADD INDEX (session_id);\n ");
32 $visitors_tmp_table = Query::get_table_name(Query::VISITORS_TMP);
33 $visitors_archive_table = Query::get_table_name(Query::VISITORS_1_16_ARCHIVE);
34 $wpdb->query("DROP TABLE IF EXISTS {$visitors_tmp_table};");
35 $wpdb->query("CREATE TABLE {$visitors_tmp_table} (\n visitor_id varchar(32),\n country_code varchar(256),\n city varchar(256),\n subdivision varchar(256),\n country varchar(256),\n continent varchar(256),\n PRIMARY KEY (visitor_id)\n ) {$charset_collate};");
36 $wpdb->query("INSERT INTO {$visitors_tmp_table} (visitor_id, country_code, city, subdivision, country, continent)\n SELECT\n LEFT(visitor_token, 32) AS visitor_token,\n country_code,\n city,\n subdivision,\n country,\n continent\n FROM\n {$visitors_table} AS visitors ON DUPLICATE KEY UPDATE country_code = visitors.country_code,\n city = visitors.city,\n subdivision = visitors.subdivision,\n country = visitors.country,\n continent = visitors.continent;\n ");
37 $wpdb->query("DROP TABLE IF EXISTS {$visitors_archive_table};");
38 $wpdb->query("RENAME TABLE {$visitors_table} TO {$visitors_archive_table};");
39 $wpdb->query("RENAME TABLE {$visitors_tmp_table} TO {$visitors_table};");
40 }
41 }
42