Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Update sql constraint for table product_sale_elements_product_image a…
…nd product_sale_elements_product_document (related to thelia#1732)
  • Loading branch information
Julien Chanseaume committed Oct 19, 2015
1 parent cf4c491 commit 4cc2403
Show file tree
Hide file tree
Showing 8 changed files with 75 additions and 18 deletions.
5 changes: 3 additions & 2 deletions core/lib/Thelia/Model/Map/ProductDocumentTableMap.php
Expand Up @@ -180,9 +180,9 @@ public function initialize()
public function buildRelations()
{
$this->addRelation('Product', '\\Thelia\\Model\\Product', RelationMap::MANY_TO_ONE, array('product_id' => 'id', ), 'CASCADE', 'RESTRICT');
$this->addRelation('ProductSaleElementsProductDocument', '\\Thelia\\Model\\ProductSaleElementsProductDocument', RelationMap::ONE_TO_MANY, array('id' => 'product_document_id', ), null, null, 'ProductSaleElementsProductDocuments');
$this->addRelation('ProductSaleElementsProductDocument', '\\Thelia\\Model\\ProductSaleElementsProductDocument', RelationMap::ONE_TO_MANY, array('id' => 'product_document_id', ), 'CASCADE', 'RESTRICT', 'ProductSaleElementsProductDocuments');
$this->addRelation('ProductDocumentI18n', '\\Thelia\\Model\\ProductDocumentI18n', RelationMap::ONE_TO_MANY, array('id' => 'id', ), 'CASCADE', null, 'ProductDocumentI18ns');
$this->addRelation('ProductSaleElements', '\\Thelia\\Model\\ProductSaleElements', RelationMap::MANY_TO_MANY, array(), null, null, 'ProductSaleElementss');
$this->addRelation('ProductSaleElements', '\\Thelia\\Model\\ProductSaleElements', RelationMap::MANY_TO_MANY, array(), 'CASCADE', 'RESTRICT', 'ProductSaleElementss');
} // buildRelations()

/**
Expand All @@ -205,6 +205,7 @@ public static function clearRelatedInstancePool()
{
// Invalidate objects in ".$this->getClassNameFromBuilder($joinedTableTableMapBuilder)." instance pool,
// since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule.
ProductSaleElementsProductDocumentTableMap::clearInstancePool();
ProductDocumentI18nTableMap::clearInstancePool();
}

Expand Down
5 changes: 3 additions & 2 deletions core/lib/Thelia/Model/Map/ProductImageTableMap.php
Expand Up @@ -180,9 +180,9 @@ public function initialize()
public function buildRelations()
{
$this->addRelation('Product', '\\Thelia\\Model\\Product', RelationMap::MANY_TO_ONE, array('product_id' => 'id', ), 'CASCADE', 'RESTRICT');
$this->addRelation('ProductSaleElementsProductImage', '\\Thelia\\Model\\ProductSaleElementsProductImage', RelationMap::ONE_TO_MANY, array('id' => 'product_image_id', ), null, null, 'ProductSaleElementsProductImages');
$this->addRelation('ProductSaleElementsProductImage', '\\Thelia\\Model\\ProductSaleElementsProductImage', RelationMap::ONE_TO_MANY, array('id' => 'product_image_id', ), 'CASCADE', 'RESTRICT', 'ProductSaleElementsProductImages');
$this->addRelation('ProductImageI18n', '\\Thelia\\Model\\ProductImageI18n', RelationMap::ONE_TO_MANY, array('id' => 'id', ), 'CASCADE', null, 'ProductImageI18ns');
$this->addRelation('ProductSaleElements', '\\Thelia\\Model\\ProductSaleElements', RelationMap::MANY_TO_MANY, array(), null, null, 'ProductSaleElementss');
$this->addRelation('ProductSaleElements', '\\Thelia\\Model\\ProductSaleElements', RelationMap::MANY_TO_MANY, array(), 'CASCADE', 'RESTRICT', 'ProductSaleElementss');
} // buildRelations()

/**
Expand All @@ -205,6 +205,7 @@ public static function clearRelatedInstancePool()
{
// Invalidate objects in ".$this->getClassNameFromBuilder($joinedTableTableMapBuilder)." instance pool,
// since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule.
ProductSaleElementsProductImageTableMap::clearInstancePool();
ProductImageI18nTableMap::clearInstancePool();
}

Expand Down
Expand Up @@ -147,8 +147,8 @@ public function initialize()
*/
public function buildRelations()
{
$this->addRelation('ProductSaleElements', '\\Thelia\\Model\\ProductSaleElements', RelationMap::MANY_TO_ONE, array('product_sale_elements_id' => 'id', ), null, null);
$this->addRelation('ProductDocument', '\\Thelia\\Model\\ProductDocument', RelationMap::MANY_TO_ONE, array('product_document_id' => 'id', ), null, null);
$this->addRelation('ProductSaleElements', '\\Thelia\\Model\\ProductSaleElements', RelationMap::MANY_TO_ONE, array('product_sale_elements_id' => 'id', ), 'CASCADE', 'RESTRICT');
$this->addRelation('ProductDocument', '\\Thelia\\Model\\ProductDocument', RelationMap::MANY_TO_ONE, array('product_document_id' => 'id', ), 'CASCADE', 'RESTRICT');
} // buildRelations()

/**
Expand Down
Expand Up @@ -147,8 +147,8 @@ public function initialize()
*/
public function buildRelations()
{
$this->addRelation('ProductSaleElements', '\\Thelia\\Model\\ProductSaleElements', RelationMap::MANY_TO_ONE, array('product_sale_elements_id' => 'id', ), null, null);
$this->addRelation('ProductImage', '\\Thelia\\Model\\ProductImage', RelationMap::MANY_TO_ONE, array('product_image_id' => 'id', ), null, null);
$this->addRelation('ProductSaleElements', '\\Thelia\\Model\\ProductSaleElements', RelationMap::MANY_TO_ONE, array('product_sale_elements_id' => 'id', ), 'CASCADE', 'RESTRICT');
$this->addRelation('ProductImage', '\\Thelia\\Model\\ProductImage', RelationMap::MANY_TO_ONE, array('product_image_id' => 'id', ), 'CASCADE', 'RESTRICT');
} // buildRelations()

/**
Expand Down
10 changes: 6 additions & 4 deletions core/lib/Thelia/Model/Map/ProductSaleElementsTableMap.php
Expand Up @@ -198,10 +198,10 @@ public function buildRelations()
$this->addRelation('AttributeCombination', '\\Thelia\\Model\\AttributeCombination', RelationMap::ONE_TO_MANY, array('id' => 'product_sale_elements_id', ), 'CASCADE', 'RESTRICT', 'AttributeCombinations');
$this->addRelation('CartItem', '\\Thelia\\Model\\CartItem', RelationMap::ONE_TO_MANY, array('id' => 'product_sale_elements_id', ), 'CASCADE', 'RESTRICT', 'CartItems');
$this->addRelation('ProductPrice', '\\Thelia\\Model\\ProductPrice', RelationMap::ONE_TO_MANY, array('id' => 'product_sale_elements_id', ), 'CASCADE', null, 'ProductPrices');
$this->addRelation('ProductSaleElementsProductImage', '\\Thelia\\Model\\ProductSaleElementsProductImage', RelationMap::ONE_TO_MANY, array('id' => 'product_sale_elements_id', ), null, null, 'ProductSaleElementsProductImages');
$this->addRelation('ProductSaleElementsProductDocument', '\\Thelia\\Model\\ProductSaleElementsProductDocument', RelationMap::ONE_TO_MANY, array('id' => 'product_sale_elements_id', ), null, null, 'ProductSaleElementsProductDocuments');
$this->addRelation('ProductImage', '\\Thelia\\Model\\ProductImage', RelationMap::MANY_TO_MANY, array(), null, null, 'ProductImages');
$this->addRelation('ProductDocument', '\\Thelia\\Model\\ProductDocument', RelationMap::MANY_TO_MANY, array(), null, null, 'ProductDocuments');
$this->addRelation('ProductSaleElementsProductImage', '\\Thelia\\Model\\ProductSaleElementsProductImage', RelationMap::ONE_TO_MANY, array('id' => 'product_sale_elements_id', ), 'CASCADE', 'RESTRICT', 'ProductSaleElementsProductImages');
$this->addRelation('ProductSaleElementsProductDocument', '\\Thelia\\Model\\ProductSaleElementsProductDocument', RelationMap::ONE_TO_MANY, array('id' => 'product_sale_elements_id', ), 'CASCADE', 'RESTRICT', 'ProductSaleElementsProductDocuments');
$this->addRelation('ProductImage', '\\Thelia\\Model\\ProductImage', RelationMap::MANY_TO_MANY, array(), 'CASCADE', 'RESTRICT', 'ProductImages');
$this->addRelation('ProductDocument', '\\Thelia\\Model\\ProductDocument', RelationMap::MANY_TO_MANY, array(), 'CASCADE', 'RESTRICT', 'ProductDocuments');
} // buildRelations()

/**
Expand All @@ -226,6 +226,8 @@ public static function clearRelatedInstancePool()
AttributeCombinationTableMap::clearInstancePool();
CartItemTableMap::clearInstancePool();
ProductPriceTableMap::clearInstancePool();
ProductSaleElementsProductImageTableMap::clearInstancePool();
ProductSaleElementsProductDocumentTableMap::clearInstancePool();
}

/**
Expand Down
8 changes: 4 additions & 4 deletions local/config/schema.xml
Expand Up @@ -1699,10 +1699,10 @@
<column autoIncrement="true" name="id" primaryKey="true" required="true" type="INTEGER" />
<column name="product_sale_elements_id" required="true" type="INTEGER" />
<column name="product_image_id" required="true" type="INTEGER" />
<foreign-key foreignTable="product_sale_elements" name="fk_pse_product_image_product_sale_elements_id">
<foreign-key foreignTable="product_sale_elements" name="fk_pse_product_image_product_sale_elements_id" onDelete="CASCADE" onUpdate="RESTRICT">
<reference foreign="id" local="product_sale_elements_id" />
</foreign-key>
<foreign-key foreignTable="product_image" name="fk_pse_product_image_product_image_id">
<foreign-key foreignTable="product_image" name="fk_pse_product_image_product_image_id" onDelete="CASCADE" onUpdate="RESTRICT">
<reference foreign="id" local="product_image_id" />
</foreign-key>
<index name="fk_pse_product_image_product_image_id_idx">
Expand All @@ -1716,10 +1716,10 @@
<column autoIncrement="true" name="id" primaryKey="true" required="true" type="INTEGER" />
<column name="product_sale_elements_id" required="true" type="INTEGER" />
<column name="product_document_id" required="true" type="INTEGER" />
<foreign-key foreignTable="product_sale_elements" name="fk_pse_product_document_product_sale_elements_id">
<foreign-key foreignTable="product_sale_elements" name="fk_pse_product_document_product_sale_elements_id" onDelete="CASCADE" onUpdate="RESTRICT">
<reference foreign="id" local="product_sale_elements_id" />
</foreign-key>
<foreign-key foreignTable="product_document" name="fk_pse_product_document_product_document_id">
<foreign-key foreignTable="product_document" name="fk_pse_product_document_product_document_id" onDelete="CASCADE" onUpdate="RESTRICT">
<reference foreign="id" local="product_document_id" />
</foreign-key>
<index name="fk_pse_product_document_product_document__idx">
Expand Down
12 changes: 10 additions & 2 deletions setup/thelia.sql
Expand Up @@ -2098,10 +2098,14 @@ CREATE TABLE `product_sale_elements_product_image`
INDEX `fk_pse_product_image_product_sale_element_idx` (`product_sale_elements_id`),
CONSTRAINT `fk_pse_product_image_product_sale_elements_id`
FOREIGN KEY (`product_sale_elements_id`)
REFERENCES `product_sale_elements` (`id`),
REFERENCES `product_sale_elements` (`id`)
ON UPDATE RESTRICT
ON DELETE CASCADE,
CONSTRAINT `fk_pse_product_image_product_image_id`
FOREIGN KEY (`product_image_id`)
REFERENCES `product_image` (`id`)
ON UPDATE RESTRICT
ON DELETE CASCADE
) ENGINE=InnoDB CHARACTER SET='utf8';

-- ---------------------------------------------------------------------
Expand All @@ -2120,10 +2124,14 @@ CREATE TABLE `product_sale_elements_product_document`
INDEX `fk_pse_product_document_product_sale_elem_idx` (`product_sale_elements_id`),
CONSTRAINT `fk_pse_product_document_product_sale_elements_id`
FOREIGN KEY (`product_sale_elements_id`)
REFERENCES `product_sale_elements` (`id`),
REFERENCES `product_sale_elements` (`id`)
ON UPDATE RESTRICT
ON DELETE CASCADE,
CONSTRAINT `fk_pse_product_document_product_document_id`
FOREIGN KEY (`product_document_id`)
REFERENCES `product_document` (`id`)
ON UPDATE RESTRICT
ON DELETE CASCADE
) ENGINE=InnoDB CHARACTER SET='utf8';

-- ---------------------------------------------------------------------
Expand Down
45 changes: 45 additions & 0 deletions setup/update/sql/2.1.7.sql
@@ -0,0 +1,45 @@
SET FOREIGN_KEY_CHECKS = 0;

UPDATE `config` SET `value`='2.1.7' WHERE `name`='thelia_version';
UPDATE `config` SET `value`='2' WHERE `name`='thelia_major_version';
UPDATE `config` SET `value`='1' WHERE `name`='thelia_minus_version';
UPDATE `config` SET `value`='7' WHERE `name`='thelia_release_version';
UPDATE `config` SET `value`='' WHERE `name`='thelia_extra_version';

ALTER TABLE `product_sale_elements_product_image` DROP FOREIGN KEY `fk_pse_product_image_product_sale_elements_id`;

ALTER TABLE product_sale_elements_product_image
ADD CONSTRAINT `fk_pse_product_image_product_sale_elements_id`
FOREIGN KEY (`product_sale_elements_id`)
REFERENCES `product_sale_elements` (`id`)
ON UPDATE RESTRICT
ON DELETE CASCADE;

ALTER TABLE `product_sale_elements_product_image` DROP FOREIGN KEY `fk_pse_product_image_product_image_id`;

ALTER TABLE product_sale_elements_product_image
ADD CONSTRAINT `fk_pse_product_image_product_image_id`
FOREIGN KEY (`product_image_id`)
REFERENCES `product_image` (`id`)
ON UPDATE RESTRICT
ON DELETE CASCADE;

ALTER TABLE `product_sale_elements_product_document` DROP FOREIGN KEY `fk_pse_product_document_product_sale_elements_id`;

ALTER TABLE product_sale_elements_product_document
ADD CONSTRAINT `fk_pse_product_document_product_sale_elements_id`
FOREIGN KEY (`product_sale_elements_id`)
REFERENCES `product_sale_elements` (`id`)
ON UPDATE RESTRICT
ON DELETE CASCADE;

ALTER TABLE `product_sale_elements_product_document` DROP FOREIGN KEY `fk_pse_product_document_product_document_id`;

ALTER TABLE product_sale_elements_product_document
ADD CONSTRAINT `fk_pse_product_document_product_document_id`
FOREIGN KEY (`product_document_id`)
REFERENCES `product_document` (`id`)
ON UPDATE RESTRICT
ON DELETE CASCADE;

SET FOREIGN_KEY_CHECKS = 1;

0 comments on commit 4cc2403

Please sign in to comment.