Skip to content

Commit

Permalink
MAGETWO-87551: Convert existing data install/upgrade scripts
Browse files Browse the repository at this point in the history
- Analytics
- Authorization
- Braintree
- Bundle
- Eav (EavSetup refactoring only)
- Catalog
  • Loading branch information
rganin committed Feb 9, 2018
1 parent 4236163 commit dcd8b32
Show file tree
Hide file tree
Showing 31 changed files with 1,282 additions and 1,776 deletions.
29 changes: 15 additions & 14 deletions app/code/Magento/Analytics/Setup/Patch/PrepareInitialConfig.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,38 +7,39 @@
namespace Magento\Analytics\Setup\Patch;

use Magento\Analytics\Model\Config\Backend\Enabled\SubscriptionHandler;
use Magento\Framework\Setup\ModuleDataSetupInterface;
use Magento\Framework\App\ResourceConnection;
use Magento\Setup\Model\Patch\DataPatchInterface;
use Magento\Setup\Model\Patch\VersionedDataPatch;

/**
* Initial patch.
*
*
* @package Magento\Analytics\Setup\Patch
*/
class PatchInitial implements \Magento\Setup\Model\Patch\DataPatchInterface
class PrepareInitialConfig implements DataPatchInterface, VersionedDataPatch
{
/**
* @var ModuleDataSetupInterface
* @var ResourceConnection
*/
private $moduleDataSetup;
private $resourceConnection;

/**
* PatchInitial constructor.
* @param ModuleDataSetupInterface $moduleDataSetup
* PrepareInitialConfig constructor.
* @param ResourceConnection $resourceConnection
*/
public function __construct(
ModuleDataSetupInterface $moduleDataSetup
ResourceConnection $resourceConnection
) {

$this->moduleDataSetup = $moduleDataSetup;
$this->resourceConnection = $resourceConnection;
}

/**
* {@inheritdoc}
*/
public function apply()
{
$this->moduleDataSetup->getConnection()->insertMultiple(
$this->moduleDataSetup->getTable('core_config_data'),
$this->resourceConnection->getConnection()->insertMultiple(
$this->resourceConnection->getConnection()->getTableName('core_config_data'),
[
[
'scope' => 'default',
Expand All @@ -55,8 +56,8 @@ public function apply()
]
);

$this->moduleDataSetup->getConnection()->insert(
$this->moduleDataSetup->getTable('flag'),
$this->resourceConnection->getConnection()->insert(
$this->resourceConnection->getConnection()->getTableName('flag'),
[
'flag_code' => SubscriptionHandler::ATTEMPTS_REVERSE_COUNTER_FLAG_CODE,
'state' => 0,
Expand Down
12 changes: 9 additions & 3 deletions app/code/Magento/Analytics/Setup/patch.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
<?xml version="1.0"?>
<!--
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
-->
<data>
<patches>
<patch name="Magento\Analytics\Setup\Patch\PatchInitial" sortOrder="1"/>
</patches>
<patches>
<patch name="Magento\Analytics\Setup\Patch\PrepareInitialConfig" sortOrder="1"/>
</patches>
</data>
89 changes: 77 additions & 12 deletions app/code/Magento/Authorization/Setup/Patch/InitializeAuthRoles.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,39 +6,104 @@

namespace Magento\Authorization\Setup\Patch;

use Magento\Framework\Setup\ModuleDataSetupInterface;
use Magento\Framework\App\ResourceConnection;
use Magento\Setup\Model\Patch\DataPatchInterface;
use Magento\Setup\Model\Patch\VersionedDataPatch;
use Magento\Authorization\Model\Acl\Role\Group as RoleGroup;
use Magento\Authorization\Model\UserContextInterface;

/**
* Initial patch.
*
* @package Magento\Analytics\Setup\Patch
* Class InitializeAuthRoles
* @package Magento\Authorization\Setup\Patch
*/
class PrepareInitialConfig implements DataPatchInterface, VersionedDataPatch
class InitializeAuthRoles implements DataPatchInterface, VersionedDataPatch
{
/**
* @var ModuleDataSetupInterface
* @var ResourceConnection
*/
private $moduleDataSetup;
private $resourceConnection;

/**
* PatchInitial constructor.
* @param ModuleDataSetupInterface $moduleDataSetup
* @var \Magento\Authorization\Setup\AuthorizationFactory
*/
private $authFactory;

/**
* InitializeAuthRoles constructor.
* @param ResourceConnection $resourceConnection
* @param \Magento\Authorization\Setup\AuthorizationFactory $authorizationFactory
*/
public function __construct(
ModuleDataSetupInterface $moduleDataSetup
ResourceConnection $resourceConnection,
\Magento\Authorization\Setup\AuthorizationFactory $authorizationFactory
) {

$this->moduleDataSetup = $moduleDataSetup;
$this->resourceConnection = $resourceConnection;
$this->authFactory = $authorizationFactory;
}

/**
* {@inheritdoc}
*/
public function apply()
{
$roleCollection = $this->authFactory->createRoleCollection()
->addFieldToFilter('parent_id', 0)
->addFieldToFilter('tree_level', 1)
->addFieldToFilter('role_type', RoleGroup::ROLE_TYPE)
->addFieldToFilter('user_id', 0)
->addFieldToFilter('user_type', UserContextInterface::USER_TYPE_ADMIN)
->addFieldToFilter('role_name', 'Administrators');

if ($roleCollection->count() == 0) {
$admGroupRole = $this->authFactory->createRole()->setData(
[
'parent_id' => 0,
'tree_level' => 1,
'sort_order' => 1,
'role_type' => RoleGroup::ROLE_TYPE,
'user_id' => 0,
'user_type' => UserContextInterface::USER_TYPE_ADMIN,
'role_name' => 'Administrators',
]
)->save();
} else {
/** @var \Magento\Authorization\Model\ResourceModel\Role $item */
foreach ($roleCollection as $item) {
$admGroupRole = $item;
break;
}
}

$rulesCollection = $this->authFactory->createRulesCollection()
->addFieldToFilter('role_id', $admGroupRole->getId())
->addFieldToFilter('resource_id', 'all');

if ($rulesCollection->count() == 0) {
$this->authFactory->createRules()->setData(
[
'role_id' => $admGroupRole->getId(),
'resource_id' => 'Magento_Backend::all',
'privileges' => null,
'permission' => 'allow',
]
)->save();
} else {
/** @var \Magento\Authorization\Model\Rules $rule */
foreach ($rulesCollection as $rule) {
$rule->setData('resource_id', 'Magento_Backend::all')->save();
}
}

/**
* Delete rows by condition from authorization_rule
*/
$tableName = $this->resourceConnection->getConnection()->getTableName('authorization_rule');
if ($tableName) {
$this->resourceConnection->getConnection()->delete(
$tableName,
['resource_id = ?' => 'admin/system/tools/compiler']
);
}

}

Expand Down
12 changes: 9 additions & 3 deletions app/code/Magento/Authorization/Setup/patch.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
<?xml version="1.0"?>
<!--
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
-->
<data>
<patches>
<patch name="Magento\Authorization\Setup\Patch\PatchInitial" sortOrder="1"/>
</patches>
<patches>
<patch name="Magento\Authorization\Setup\Patch\InitializeAuthRoles" sortOrder="1"/>
</patches>
</data>
Original file line number Diff line number Diff line change
Expand Up @@ -6,42 +6,42 @@

namespace Magento\Braintree\Setup\Patch;

use Magento\Framework\Setup\ModuleDataSetupInterface;
use Magento\Framework\App\ResourceConnection;
use Magento\Setup\Model\Patch\DataPatchInterface;
use Magento\Setup\Model\Patch\VersionedDataPatch;

/**
*
*
* @package Magento\Analytics\Setup\Patch
* Convert data fro php native serialized data to JSON.
*/
class ConvertSerializedDataToJson implements DataPatchInterface, VersionedDataPatch
{
/**
* @var ModuleDataSetupInterface
* @var ResourceConnection
*/
private $moduleDataSetup;
private $resourceConnection;

/**
* @var \Magento\Framework\DB\FieldDataConverterFactory
*/
private $fieldDataConverterFactory;

/**
* @var \Magento\Framework\DB\Select\QueryModifierFactory
*/
private $queryModifierFactory;

/**
* PatchInitial constructor.
* @param ModuleDataSetupInterface $moduleDataSetup
* ConvertSerializedDataToJson constructor.
* @param ResourceConnection $resourceConnection
* @param \Magento\Framework\DB\FieldDataConverterFactory $fieldDataConverterFactory
* @param \Magento\Framework\DB\Select\QueryModifierFactory $queryModifierFactory
*/
public function __construct(
ModuleDataSetupInterface $moduleDataSetup,
ResourceConnection $resourceConnection,
\Magento\Framework\DB\FieldDataConverterFactory $fieldDataConverterFactory,
\Magento\Framework\DB\Select\QueryModifierFactory $queryModifierFactory
) {
$this->moduleDataSetup = $moduleDataSetup;
$this->resourceConnection = $resourceConnection;
$this->fieldDataConverterFactory = $fieldDataConverterFactory;
$this->queryModifierFactory = $queryModifierFactory;
}
Expand Down Expand Up @@ -76,8 +76,8 @@ private function convertSerializedDataToJson()
);

$fieldDataConverter->convert(
$this->moduleDataSetup->getConnection(),
$this->moduleDataSetup->getTable('core_config_data'),
$this->resourceConnection->getConnection(),
$this->resourceConnection->getConnection()->getTableName('core_config_data'),
'config_id',
'value',
$queryModifier
Expand Down
2 changes: 1 addition & 1 deletion app/code/Magento/Braintree/Setup/patch.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<data>
<patches>
<patch name="Magento\Braintree\Setup\Patch\Patch201" sortOrder="1"/>
<patch name="Magento\Braintree\Setup\Patch\ConvertSerializedDataToJson" sortOrder="1"/>
</patches>
</data>
Loading

0 comments on commit dcd8b32

Please sign in to comment.