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 / Step_Migration.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
Step_Migration.php
60 lines
1 <?php
2
3 namespace IAWP_SCOPED\IAWP\Migrations;
4
5 /** @internal */
6 abstract class Step_Migration
7 {
8 protected abstract function database_version() : int;
9 protected abstract function queries() : array;
10 public function migrate() : bool
11 {
12 $current_db_version = \get_option('iawp_db_version', '0');
13 if (\version_compare($current_db_version, \strval($this->database_version()), '>=')) {
14 return \true;
15 }
16 $completed = $this->run_queries();
17 if ($completed) {
18 \update_option('iawp_db_version', $this->database_version());
19 }
20 return $completed;
21 }
22 private function run_queries() : bool
23 {
24 global $wpdb;
25 $queries = $this->queries();
26 foreach ($queries as $index => $query) {
27 // Skip the step if there is no query to run
28 if (\is_null($query)) {
29 \update_option('iawp_last_finished_migration_step', $index + 1);
30 continue;
31 }
32 $wpdb->query($query);
33 if ($wpdb->last_error !== '') {
34 $is_connected = $wpdb->check_connection(\false);
35 if (!$is_connected) {
36 \IAWP_SCOPED\iawp_log('Independent Analytics: Your database connection was temporarily lost');
37 return \false;
38 }
39 $wpdb->query($query);
40 if ($wpdb->last_error !== '') {
41 $last_error = \trim($wpdb->last_error);
42 $last_query = \trim($wpdb->last_query);
43 // Must call update_option after store the last_error and last_query
44 \update_option('iawp_migration_error', $last_error);
45 \update_option('iawp_migration_error_query', $last_query);
46 return \false;
47 }
48 }
49 \update_option('iawp_last_finished_migration_step', $index + 1);
50 }
51 return \true;
52 }
53 public static function has_index(string $table, string $name) : bool
54 {
55 global $wpdb;
56 $row = $wpdb->get_row($wpdb->prepare("\n SHOW INDEX FROM {$table} WHERE Key_name = %s\n ", $name));
57 return !\is_null($row);
58 }
59 }
60