tạo app\code\Sugarcode\Test\Setup\UpgradeSchema.php
và chạy lệnh nâng cấp
khi bao giờ phiên bản đã được thay đổi, chỉ cần thay đổi trong module.xml và trong Nâng cấpSchema.php, thêm một phiên bản nữa nếu điều kiện so sánh với phiên bản
if (version_compare($context->getVersion(), '2.0.1', '<')) {
// Changes here.
}
Vì vậy, khi bạn chạy lệnh nâng cấp, nó sẽ chạy UpgradeSchema.php
tệp và trong đó nó sẽ so sánh phiên bản dựa trên phiên bản đó, nó sẽ thực thi mã
Ví dụ
<?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();
}
}
mô-đun
<?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>
nếu nó hoạt động chấp nhận câu trả lời bằng cách nhấp vào biểu tượng bên phải