In Magento 2 Sometimes we have added a column/field in the table for our custom requirement and in future if we need to rename or change that column name, we can rename it using UpgradeSchema.php file.
I have added one field name guestname in sales_order table and I want to rename that field to fullname. You can rename field using changeColumn() in UpgradeSchema.php file.
Using below code snippet you can rename already existed column field from a table.
Upgrade the setup_version number of module from module.xml file. An older version number is 1.0.1 so I have added new version 1.0.2 in module.xml file
Path: Magento22/app/code/Rbj/Training/etc/module.xml
<?xml version="1.0" ?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd"> <module name="Rbj_Training" setup_version="1.0.2"/> </config>
Create UpgradeSchema.php file under Setup folder in your module.Path: Magento22/app/code/Rbj/Training/Setup/UpgradeSchema.php
<?php namespace Rbj\Training\Setup; use Magento\Framework\Setup\ModuleContextInterface; use Magento\Framework\Setup\SchemaSetupInterface; use Magento\Framework\Setup\UpgradeSchemaInterface; /** * Upgrade the Sales_Order Table to remove extra field */ class UpgradeSchema implements UpgradeSchemaInterface { public function upgrade(SchemaSetupInterface $setup, ModuleContextInterface $context) { $setup->startSetup(); if (version_compare($context->getVersion(), '1.0.2', '<')) { $setup->getConnection()->changeColumn( $setup->getTable('sales_order'), 'guestname', 'fullname', [ 'type' => \Magento\Framework\DB\Ddl\Table::TYPE_TEXT, 'length' => 255, 'comment' => 'Full name of customer' ] ); } $setup->endSetup(); } }
Using the above code snippet you can change column name from guestname to fullname with 255 character type text
Run command from root directory of your project,php bin/magento setup:upgrade
If you want to drop field name from a table, Remove an extra field from a table
If you want to add the field in table Add New Field in Database Table Magento 2