Skip to content

Commit b268498

Browse files
committed
MAGETWO-67092: Table salesrule_product_attribute is not populated when upgrading to 2.2
1 parent f245f6d commit b268498

File tree

1 file changed

+26
-38
lines changed

1 file changed

+26
-38
lines changed

app/code/Magento/SalesRule/Setup/UpgradeData.php

Lines changed: 26 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -6,31 +6,18 @@
66

77
namespace Magento\SalesRule\Setup;
88

9-
use Magento\Backend\App\Area\FrontNameResolver;
10-
use Magento\Framework\App\State;
11-
use Magento\Framework\DB\AggregatedFieldDataConverter;
12-
use Magento\Framework\DB\DataConverter\SerializedToJson;
13-
use Magento\Framework\DB\FieldToConvert;
14-
use Magento\Framework\EntityManager\MetadataPool;
15-
use Magento\Framework\Serialize\Serializer\Json;
16-
use Magento\Framework\Setup\ModuleContextInterface;
17-
use Magento\Framework\Setup\ModuleDataSetupInterface;
18-
use Magento\Framework\Setup\UpgradeDataInterface;
19-
use Magento\SalesRule\Api\Data\RuleInterface;
20-
use Magento\SalesRule\Model\Rule as ModelRule;
21-
229
/**
2310
* Class \Magento\SalesRule\Setup\UpgradeData
2411
*/
25-
class UpgradeData implements UpgradeDataInterface
12+
class UpgradeData implements \Magento\Framework\Setup\UpgradeDataInterface
2613
{
2714
/**
28-
* @var MetadataPool
15+
* @var \Magento\Framework\EntityManager\MetadataPool
2916
*/
3017
private $metadataPool;
3118

3219
/**
33-
* @var AggregatedFieldDataConverter
20+
* @var \Magento\Framework\DB\AggregatedFieldDataConverter
3421
*/
3522
private $aggregatedFieldConverter;
3623

@@ -44,14 +31,14 @@ class UpgradeData implements UpgradeDataInterface
4431
/**
4532
* App state.
4633
*
47-
* @var State
34+
* @var \Magento\Framework\App\State
4835
*/
4936
private $state;
5037

5138
/**
5239
* Serializer.
5340
*
54-
* @var Json
41+
* @var \Magento\Framework\Serialize\Serializer\Json
5542
*/
5643
private $serializer;
5744

@@ -63,19 +50,19 @@ class UpgradeData implements UpgradeDataInterface
6350
private $ruleColletionFactory;
6451

6552
/**
66-
* @param AggregatedFieldDataConverter $aggregatedFieldConverter
67-
* @param MetadataPool $metadataPool
53+
* @param \Magento\Framework\DB\AggregatedFieldDataConverter $aggregatedFieldConverter
54+
* @param \Magento\Framework\EntityManager\MetadataPool $metadataPool
6855
* @param \Magento\SalesRule\Model\ResourceModel\Rule $resourceModelRule
69-
* @param Json $serializer
70-
* @param State $state
56+
* @param \Magento\Framework\Serialize\Serializer\Json $serializer
57+
* @param \Magento\Framework\App\State $state
7158
* @param \Magento\SalesRule\Model\ResourceModel\Rule\CollectionFactory $ruleColletionFactory
7259
*/
7360
public function __construct(
74-
AggregatedFieldDataConverter $aggregatedFieldConverter,
75-
MetadataPool $metadataPool,
61+
\Magento\Framework\DB\AggregatedFieldDataConverter $aggregatedFieldConverter,
62+
\Magento\Framework\EntityManager\MetadataPool $metadataPool,
7663
\Magento\SalesRule\Model\ResourceModel\Rule $resourceModelRule,
77-
Json $serializer,
78-
State $state,
64+
\Magento\Framework\Serialize\Serializer\Json $serializer,
65+
\Magento\Framework\App\State $state,
7966
\Magento\SalesRule\Model\ResourceModel\Rule\CollectionFactory $ruleColletionFactory
8067
) {
8168
$this->aggregatedFieldConverter = $aggregatedFieldConverter;
@@ -89,15 +76,17 @@ public function __construct(
8976
/**
9077
* @inheritdoc
9178
*/
92-
public function upgrade(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
93-
{
79+
public function upgrade(
80+
\Magento\Framework\Setup\ModuleDataSetupInterface $setup,
81+
\Magento\Framework\Setup\ModuleContextInterface $context
82+
) {
9483
$setup->startSetup();
9584
if (version_compare($context->getVersion(), '2.0.2', '<')) {
9685
$this->convertSerializedDataToJson($setup);
9786
}
9887
if (version_compare($context->getVersion(), '2.0.3', '<')) {
9988
$this->state->emulateAreaCode(
100-
FrontNameResolver::AREA_CODE,
89+
\Magento\Backend\App\Area\FrontNameResolver::AREA_CODE,
10190
[$this, 'fillSalesRuleProductAttributeTable'],
10291
[$setup]
10392
);
@@ -109,23 +98,22 @@ public function upgrade(ModuleDataSetupInterface $setup, ModuleContextInterface
10998
/**
11099
* Convert metadata from serialized to JSON format:
111100
*
112-
* @param ModuleDataSetupInterface $setup
113-
*
101+
* @param \Magento\Framework\Setup\ModuleDataSetupInterface $setup *
114102
* @return void
115103
*/
116104
public function convertSerializedDataToJson($setup)
117105
{
118-
$metadata = $this->metadataPool->getMetadata(RuleInterface::class);
106+
$metadata = $this->metadataPool->getMetadata(\Magento\SalesRule\Api\Data\RuleInterface::class);
119107
$this->aggregatedFieldConverter->convert(
120108
[
121-
new FieldToConvert(
122-
SerializedToJson::class,
109+
new \Magento\Framework\DB\FieldToConvert(
110+
\Magento\Framework\DB\DataConverter\SerializedToJson::class,
123111
$setup->getTable('salesrule'),
124112
$metadata->getLinkField(),
125113
'conditions_serialized'
126114
),
127-
new FieldToConvert(
128-
SerializedToJson::class,
115+
new \Magento\Framework\DB\FieldToConvert(
116+
\Magento\Framework\DB\DataConverter\SerializedToJson::class,
129117
$setup->getTable('salesrule'),
130118
$metadata->getLinkField(),
131119
'actions_serialized'
@@ -142,9 +130,9 @@ public function convertSerializedDataToJson($setup)
142130
*/
143131
public function fillSalesRuleProductAttributeTable()
144132
{
145-
/** @var ResourceModelRule\Collection $ruleCollection */
133+
/** @var \Magento\SalesRule\Model\ResourceModel\Rule\Collection $ruleCollection */
146134
$ruleCollection = $this->ruleColletionFactory->create();
147-
/** @var ModelRule $rule */
135+
/** @var \Magento\SalesRule\Model\Rule $rule */
148136
foreach ($ruleCollection as $rule) {
149137
// Save product attributes used in rule
150138
$conditions = $rule->getConditions()->asArray();

0 commit comments

Comments
 (0)