3

I created a table with name "Redeem_blanace" using InstallSchema.php as:

class InstallSchema implements InstallSchemaInterface
{
    /**
    * {@inheritdoc}
    * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
    */
    public function install(SchemaSetupInterface $setup, ModuleContextInterface $context)
    {


      $setup->startSetup();

      $table = $setup->getConnection()->newTable($setup->getTable('Redeem_balance')
      )->addColumn(
        'transaction_id',
        Table::TYPE_INTEGER,
        null,
        ['identity' => true, 'unsigned' => true, 'nullable' => false, 'primary' =>true],
        'Transaction_Id'
      )->addColumn(
        'gift_code',
        Table::TYPE_TEXT,
        255,
        ['nullable' => true],
        'Gift_Code'
      )->addColumn(
        'redeem_amount',
        \Magento\Framework\DB\Ddl\Table::TYPE_DECIMAL,
          '20,4',
          ['nullable' => false, 'default' => 0],
        'Redeem_Amount'
      )->addColumn(
          'date_expires',
          Table::TYPE_TEXT,
          null,
          ['nullable' => true],
          'Date_Expires'
      )->addColumn(
        'expired_amount',
        Table::TYPE_INTEGER,
        null,
        ['unsigned' => false, 'nullable' => false],
        'Expired_Amount'
      )->addIndex(
        $setup->getIdxName('Redeem_balance', ['transaction_id']),
        ['transaction_id']
      )->setComment(
        'Redeem Balance Tracking Table'
      );
      $setup->getConnection()->createTable($table);

      $setup->endSetup();


      }
}

I wanted to change the table name to "pme_customerbalance" How can I do this ?

9

You can create UpgradeSchema.php file in your module and add below content in that file

app/code/Vendor/Module/Setup/UpgradeSchema.php

<?php

namespace Vendor\Module\Setup;

use Magento\Framework\Setup\UpgradeSchemaInterface;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\Setup\SchemaSetupInterface;

class UpgradeSchema implements UpgradeSchemaInterface
{
    public function upgrade(SchemaSetupInterface $setup, ModuleContextInterface $context)
    {
        $setup->startSetup();
        if (version_compare($context->getVersion(), '1.0.2', '<')) {
            $setup->getConnection()->renameTable($setup->getTable('Redeem_balance'), $setup->getTable('pme_customerbalance'));
        }
        $setup->endSetup();
    }
}

You can change module version based on your module.

Hope this will help you!

  • 1
    Yes, it worked. – Ajwad Syed Oct 17 at 8:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.