बनाएँ app\code\Sugarcode\Test\Setup\UpgradeSchema.php
और अपग्रेड कमांड चलाएं
जब कभी संस्करण सिर्फ मॉड्यूल में बदल गया था। xml और UpgradSchema.php में एक और जोड़ दें यदि संस्करण की स्थिति के साथ तुलना करें
if (version_compare($context->getVersion(), '2.0.1', '<')) {
// Changes here.
}
इसलिए जब आप अपग्रेड कमांड चलाते हैं तो यह UpgradeSchema.php
फाइल चलेगी और इसमें वह उस संस्करण के आधार पर संस्करण की तुलना करेगा जिससे यह कोड निष्पादित करेगा
भूतपूर्व
<?php
namespace Sugarcode\Test\Setup;
use Magento\Framework\Setup\UpgradeSchemaInterface;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\Setup\SchemaSetupInterface;
use Magento\Framework\DB\Ddl\Table;
class UpgradeSchema implements UpgradeSchemaInterface
{
public function upgrade(SchemaSetupInterface $setup, ModuleContextInterface $context)
{
$setup->startSetup();
$tableName = $setup->getTable('testtable');
if (version_compare($context->getVersion(), '2.0.0') < 0) {
// Changes here.
}
if (version_compare($context->getVersion(), '2.0.1', '<')) {
// Changes here.
}
if (version_compare($context->getVersion(), '2.0.2', '<')) {
if ($setup->getConnection()->isTableExists($tableName) == true) {
$connection = $setup->getConnection();
/* $connection->addColumn(
$tableName,
'updated_at',
['type' => Table::TYPE_DATETIME,'nullable' => false, 'default' => '', 'afters' => 'created_at'],
'Updated At'
); */
$connection->changeColumn(
$tableName,
'summary',
'short_summary',
['type' => Table::TYPE_TEXT, 'nullable' => false, 'default' => ''],
'Short Summary'
);
// Changes here.
}
}
$setup->endSetup();
}
}
module.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
<module name="Sugarcode_Test" setup_version="2.0.2" schema_version="2.0.2" />
</config>
अगर यह काम करता है तो सही प्रतीक पर क्लिक करके उत्तर स्वीकार करें