From 4373aee3fa454a4e519d72950a325abaee28d8e7 Mon Sep 17 00:00:00 2001 From: Maksym Perepelytsya Date: Thu, 16 Mar 2017 14:54:55 +0200 Subject: [PATCH] CRM-7904: Cannot delete all accounts by mass action (#8546) --- src/Oro/Bundle/MagentoBundle/Entity/Order.php | 1 + .../Schema/OroMagentoBundleInstaller.php | 4 +-- .../v1_46/SetCascadeDeleteToOrderCartFK.php | 30 +++++++++++++++++++ 3 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 src/Oro/Bundle/MagentoBundle/Migrations/Schema/v1_46/SetCascadeDeleteToOrderCartFK.php diff --git a/src/Oro/Bundle/MagentoBundle/Entity/Order.php b/src/Oro/Bundle/MagentoBundle/Entity/Order.php index 6bdbb1d0913..d2a17cb9693 100644 --- a/src/Oro/Bundle/MagentoBundle/Entity/Order.php +++ b/src/Oro/Bundle/MagentoBundle/Entity/Order.php @@ -192,6 +192,7 @@ class Order extends ExtendOrder implements /** * @ORM\ManyToOne(targetEntity="Cart") + * @ORM\JoinColumn(onDelete="CASCADE") */ protected $cart; diff --git a/src/Oro/Bundle/MagentoBundle/Migrations/Schema/OroMagentoBundleInstaller.php b/src/Oro/Bundle/MagentoBundle/Migrations/Schema/OroMagentoBundleInstaller.php index 38c70bc04ef..2b555e35ea0 100644 --- a/src/Oro/Bundle/MagentoBundle/Migrations/Schema/OroMagentoBundleInstaller.php +++ b/src/Oro/Bundle/MagentoBundle/Migrations/Schema/OroMagentoBundleInstaller.php @@ -72,7 +72,7 @@ public function setExtendExtension(ExtendExtension $extendExtension) */ public function getMigrationVersion() { - return 'v1_45'; + return 'v1_46'; } /** @@ -864,7 +864,7 @@ protected function addOrocrmMagentoOrderForeignKeys(Schema $schema) $schema->getTable('orocrm_magento_cart'), ['cart_id'], ['id'], - [] + ['onDelete' => 'CASCADE'] ); $table->addForeignKeyConstraint( $schema->getTable('oro_user'), diff --git a/src/Oro/Bundle/MagentoBundle/Migrations/Schema/v1_46/SetCascadeDeleteToOrderCartFK.php b/src/Oro/Bundle/MagentoBundle/Migrations/Schema/v1_46/SetCascadeDeleteToOrderCartFK.php new file mode 100644 index 00000000000..53ed059b3c6 --- /dev/null +++ b/src/Oro/Bundle/MagentoBundle/Migrations/Schema/v1_46/SetCascadeDeleteToOrderCartFK.php @@ -0,0 +1,30 @@ +getTable('orocrm_magento_order'); + $fkName = 'FK_4D09F3051AD5CDBF'; + $fk = $table->getForeignKey($fkName); + if ($fk->getOption('onDelete') !== 'CASCADE') { + $table->removeForeignKey($fkName); + $table->addForeignKeyConstraint( + $schema->getTable('orocrm_magento_cart'), + ['cart_id'], + ['id'], + ['onDelete' => 'CASCADE'] + ); + } + } +}