PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.15.0
Independent Analytics – WordPress Analytics Plugin v2.15.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_46.php
independent-analytics / IAWP / Migrations Last commit date
Creates_Reports.php 1 year ago Migration.php 1 year ago Migration_10.php 2 years ago Migration_11.php 2 years ago Migration_12.php 1 year 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 1 year 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 1 year 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_28.php 2 years ago Migration_29.php 2 years ago Migration_3.php 2 years ago Migration_30.php 2 years ago Migration_31.php 2 years ago Migration_32.php 2 years ago Migration_33.php 2 years ago Migration_34.php 1 year ago Migration_35.php 1 year ago Migration_36.php 1 year ago Migration_37.php 1 year ago Migration_38.php 1 year ago Migration_39.php 1 year ago Migration_4.php 2 years ago Migration_40.php 1 year ago Migration_41.php 1 year ago Migration_42.php 1 year ago Migration_43.php 1 year ago Migration_44.php 9 months ago Migration_45.php 8 months ago Migration_46.php 8 months ago Migration_47.php 8 months ago Migration_48.php 8 months ago Migration_49.php 8 months ago Migration_5.php 2 years ago Migration_50.php 9 months ago Migration_51.php 8 months ago Migration_52.php 8 months ago Migration_6.php 2 years ago Migration_7.php 1 year ago Migration_8.php 2 years ago Migration_9.php 2 years ago Migration_Job.php 1 year ago Migrations.php 8 months ago Step_Migration.php 6 months ago
Migration_46.php
55 lines
1 <?php
2
3 namespace IAWP\Migrations;
4
5 use IAWP\Database;
6 /** @internal */
7 class Migration_46 extends \IAWP\Migrations\Step_Migration
8 {
9 /**
10 * @return int
11 */
12 protected function database_version() : int
13 {
14 return 46;
15 }
16 /**
17 * @return array
18 */
19 protected function queries() : array
20 {
21 return [$this->drop_table_if_exists($this->tables::landing_pages()), $this->create_landing_pages_table(), $this->populate_landing_pages_table(), $this->add_landing_page_id_column(), $this->populate_landing_page_id_column(), $this->modify_landing_page_id_column(), $this->drop_original_landing_page_title_column(), $this->index_new_column()];
22 }
23 private function create_landing_pages_table() : string
24 {
25 return "\n CREATE TABLE {$this->tables::landing_pages()} (\n id BIGINT(20) UNSIGNED AUTO_INCREMENT,\n title VARCHAR(512) NOT NULL,\n PRIMARY KEY (id)\n ) DEFAULT CHARACTER SET {$this->character_set()} COLLATE {$this->collation()};\n ";
26 }
27 private function populate_landing_pages_table() : string
28 {
29 return "\n INSERT INTO {$this->tables::landing_pages()} (title)\n SELECT DISTINCT LEFT(landing_page_title, 512)\n FROM {$this->tables::campaigns()} WHERE landing_page_title IS NOT NULL\n ";
30 }
31 private function add_landing_page_id_column() : string
32 {
33 return "\n ALTER TABLE {$this->tables::campaigns()} ADD COLUMN landing_page_id BIGINT(20) UNSIGNED;\n ";
34 }
35 private function populate_landing_page_id_column() : string
36 {
37 $old_collation = Database::column_collation_for($this->tables::campaigns(), 'landing_page_title');
38 $current_collation = $this->collation();
39 $collation_statement = $this->get_collation_statement($current_collation, $old_collation);
40 return "\n UPDATE\n {$this->tables::campaigns()} AS campaigns\n JOIN {$this->tables::landing_pages()} AS landing_pages ON campaigns.landing_page_title = landing_pages.title {$collation_statement}\n SET\n campaigns.landing_page_id = landing_pages.id\n ";
41 }
42 private function modify_landing_page_id_column() : string
43 {
44 return "\n ALTER TABLE {$this->tables::campaigns()} MODIFY COLUMN landing_page_id BIGINT(20) UNSIGNED NOT NULL;\n ";
45 }
46 private function drop_original_landing_page_title_column() : string
47 {
48 return "\n ALTER TABLE {$this->tables::campaigns()} DROP COLUMN landing_page_title;\n ";
49 }
50 private function index_new_column() : string
51 {
52 return "\n ALTER TABLE {$this->tables::campaigns()} ADD INDEX (landing_page_id);\n ";
53 }
54 }
55