Skip to content

Commit

Permalink
Add primary key to plugin_cmf_deletions table (#252)
Browse files Browse the repository at this point in the history
* Add primary key to plugin_cmf_deletions

* Add migration

* Add migration for 6.9

* disable foreign key checks
  • Loading branch information
blankse authored Feb 16, 2022
1 parent 788e8ec commit 1dc099f
Show file tree
Hide file tree
Showing 3 changed files with 98 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/Installer.php
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@ public function installDatabaseTables()
`entityType` char(20) NOT NULL,
`type` varchar(255) NOT NULL,
`creationDate` bigint(20) unsigned DEFAULT NULL,
PRIMARY KEY (`id`, `entityType`, `type`),
KEY `type` (`entityType`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8'
);
Expand Down
51 changes: 51 additions & 0 deletions src/Migrations/PimcoreX/Version20220120215900.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
<?php

/**
* Pimcore
*
* This source file is available under two different licenses:
* - GNU General Public License version 3 (GPLv3)
* - Pimcore Commercial License (PCL)
* Full copyright and license information is available in
* LICENSE.md which is distributed with this source code.
*
* @copyright Copyright (c) Pimcore GmbH (http://www.pimcore.org)
* @license http://www.pimcore.org/license GPLv3 and PCL
*/

namespace CustomerManagementFrameworkBundle\Migrations\PimcoreX;

use Doctrine\DBAL\Schema\Schema;
use Pimcore\Migrations\BundleAwareMigration;

class Version20220120215900 extends BundleAwareMigration
{
protected function getBundleName(): string
{
return 'PimcoreCustomerManagementFrameworkBundle';
}

/**
* @param Schema $schema
*/
public function up(Schema $schema): void
{
$deletionsTable = $schema->getTable('plugin_cmf_deletions');

if (!$deletionsTable->hasPrimaryKey()) {
$this->addSql('SET foreign_key_checks = 0');
$this->addSql('ALTER TABLE `plugin_cmf_deletions` ADD PRIMARY KEY (`id`, `entityType`, `type`);');
$this->addSql('SET foreign_key_checks = 1');
}
}

/**
* @param Schema $schema
*/
public function down(Schema $schema): void
{
$this->addSql('SET foreign_key_checks = 0');
$this->addSql('ALTER TABLE `plugin_cmf_deletions` DROP INDEX `PRIMARY`;');
$this->addSql('SET foreign_key_checks = 1');
}
}
46 changes: 46 additions & 0 deletions src/Migrations/Version20220120215900.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
<?php

/**
* Pimcore
*
* This source file is available under two different licenses:
* - GNU General Public License version 3 (GPLv3)
* - Pimcore Commercial License (PCL)
* Full copyright and license information is available in
* LICENSE.md which is distributed with this source code.
*
* @copyright Copyright (c) Pimcore GmbH (http://www.pimcore.org)
* @license http://www.pimcore.org/license GPLv3 and PCL
*/

namespace CustomerManagementFrameworkBundle\Migrations;

use Doctrine\DBAL\Schema\Schema;
use Pimcore\Migrations\Migration\AbstractPimcoreMigration;

class Version20220120215900 extends AbstractPimcoreMigration
{
/**
* @param Schema $schema
*/
public function up(Schema $schema): void
{
$deletionsTable = $schema->getTable('plugin_cmf_deletions');

if (!$deletionsTable->hasPrimaryKey()) {
$this->addSql('SET foreign_key_checks = 0');
$this->addSql('ALTER TABLE `plugin_cmf_deletions` ADD PRIMARY KEY (`id`, `entityType`, `type`);');
$this->addSql('SET foreign_key_checks = 1');
}
}

/**
* @param Schema $schema
*/
public function down(Schema $schema): void
{
$this->addSql('SET foreign_key_checks = 0');
$this->addSql('ALTER TABLE `plugin_cmf_deletions` DROP INDEX `PRIMARY`;');
$this->addSql('SET foreign_key_checks = 1');
}
}

0 comments on commit 1dc099f

Please sign in to comment.