PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / 5.8.2
Matomo Analytics – Powerful, Privacy-First Insights for WordPress v5.8.2
5.11.1 5.11.0 5.10.2 5.10.1 trunk 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.3.2 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.10.0 4.11.0 4.12.0 4.13.0 4.13.2 4.13.3 4.13.4 4.13.5 4.14.0 4.14.1 4.14.2 4.15.0 4.15.1 4.15.2 4.15.3 4.2.0 4.3.0 4.3.1 4.4.1 4.4.2 4.5.0 4.6.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.10.0 5.2.0 5.2.1 5.2.2 5.3.0 5.3.1 5.3.2 5.3.3 5.6.0 5.6.1 5.7.0 5.7.1 5.8.0 5.8.1 5.8.2
matomo / app / core / Updater / Migration / Db / AddColumns.php
matomo / app / core / Updater / Migration / Db Last commit date
AddColumn.php 2 years ago AddColumns.php 2 years ago AddIndex.php 2 years ago AddPrimaryKey.php 2 years ago AddUniqueKey.php 2 years ago BatchInsert.php 1 year ago BoundSql.php 2 years ago ChangeColumn.php 2 years ago ChangeColumnType.php 2 years ago ChangeColumnTypes.php 2 years ago CreateTable.php 1 year ago DropColumn.php 2 years ago DropColumns.php 2 years ago DropIndex.php 2 years ago DropPrimaryKey.php 2 years ago DropTable.php 2 years ago Factory.php 5 months ago Insert.php 2 years ago Sql.php 1 year ago
AddColumns.php
51 lines
1 <?php
2
3 /**
4 * Matomo - free/libre analytics platform
5 *
6 * @link https://matomo.org
7 * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
8 */
9 namespace Piwik\Updater\Migration\Db;
10
11 use Piwik\DataAccess\TableMetadata;
12 use Piwik\Db\Schema;
13 /**
14 * @see Factory::addColumns()
15 * @ignore
16 */
17 class AddColumns extends \Piwik\Updater\Migration\Db\Sql
18 {
19 public function __construct($table, $columns, $placeColumnAfter)
20 {
21 $tableMetadata = new TableMetadata();
22 try {
23 $existingColumns = $tableMetadata->getColumns($table);
24 } catch (\Exception $ex) {
25 $existingColumns = [];
26 }
27 $changes = array();
28 foreach ($columns as $columnName => $columnType) {
29 if (in_array($columnName, $existingColumns)) {
30 continue;
31 }
32 $part = sprintf("ADD COLUMN `%s` %s", $columnName, $columnType);
33 if (!empty($placeColumnAfter)) {
34 $part .= sprintf(' AFTER `%s`', $placeColumnAfter);
35 $placeColumnAfter = $columnName;
36 }
37 $changes[] = $part;
38 }
39 if (Schema::getInstance()->supportsComplexColumnUpdates()) {
40 $sql = sprintf("ALTER TABLE `%s` %s", $table, implode(', ', $changes));
41 parent::__construct($sql, static::ERROR_CODE_DUPLICATE_COLUMN);
42 } else {
43 $queriesToPerform = [];
44 foreach ($changes as $change) {
45 $queriesToPerform[] = sprintf("ALTER TABLE `%s` %s", $table, $change);
46 }
47 parent::__construct(implode(';', $queriesToPerform), static::ERROR_CODE_DUPLICATE_COLUMN);
48 }
49 }
50 }
51