Update module to run alter command





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ margin-bottom:0;
}







1















I have created a module Vendor/Module I have added sql setup script in it. The module is working fine.



Now I need to alter table and add come more columns in the table. To do this I need to add new sql setup script and Update my module version.



Can anyone help me out on this? How can I do this?









share





























    1















    I have created a module Vendor/Module I have added sql setup script in it. The module is working fine.



    Now I need to alter table and add come more columns in the table. To do this I need to add new sql setup script and Update my module version.



    Can anyone help me out on this? How can I do this?









    share

























      1












      1








      1








      I have created a module Vendor/Module I have added sql setup script in it. The module is working fine.



      Now I need to alter table and add come more columns in the table. To do this I need to add new sql setup script and Update my module version.



      Can anyone help me out on this? How can I do this?









      share














      I have created a module Vendor/Module I have added sql setup script in it. The module is working fine.



      Now I need to alter table and add come more columns in the table. To do this I need to add new sql setup script and Update my module version.



      Can anyone help me out on this? How can I do this?







      magento2 module setup-script





      share












      share










      share



      share










      asked Apr 19 at 5:26









      Muhammad AnasMuhammad Anas

      8031322




      8031322






















          3 Answers
          3






          active

          oldest

          votes


















          1














          First Update your moudule.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="Your_Module" setup_version="1.0.1" schema_version="1.0.2">
          </module>
          </config>


          You can use UpgradeSchema.php

          Create UpgradeSchema.php in Setup/UpgradeSchema.php



          <?php

          namespace YourModuleSetup;

          use MagentoFrameworkSetupModuleContextInterface;
          use MagentoFrameworkSetupSchemaSetupInterface;
          use MagentoFrameworkSetupUpgradeSchemaInterface;

          class UpgradeSchema implements UpgradeSchemaInterface
          {
          public function upgrade(SchemaSetupInterface $setup, ModuleContextInterface $context)
          {
          $installer = $setup;

          $installer->startSetup();

          if(version_compare($context->getVersion(), '1.0.1', '<')) {
          $table = $installer->getTable('your_table');
          //Your alteration logic
          $columns = [
          'your_column' =>
          [
          'type' => MagentoFrameworkDBDdlTable::TYPE_TEXT,
          'nullable' => false,
          'length' => 512,
          'default' => null,
          'comment' => 'You Column Comment',
          ],
          ];

          $connection = $installer->getConnection();

          foreach ($columns as $name => $definition) {
          $connection->addColumn($table, $name, $definition);
          }
          }
          $installer->endSetup();
          }
          }




          share
























          • Thanks. Your code is easier to understand. +1 for that

            – Muhammad Anas
            Apr 19 at 5:57



















          1














          Create file name called UpgradeSchema.php from your module Setup folders
          Ex: app/code/Vendor/Ecommerce/Setup/UpgradeSchema.php

          Here we are going to create column called vendor_isallowstatus

          Column name called : vendor_isallowstatus

          Table name : vendor_ecommerce

          adde below code into your file.



          Ex:



          if (version_compare($context->getVersion(), ‘2.0.5’) < 0) { //My new upgrade file version is 2.0.5 incase if 2.0.6 then set 2.0.6
          }


          Step:1



          <?php

          namespace VendorEcommerceSetup;
          use MagentoFrameworkSetupUpgradeSchemaInterface;
          use MagentoFrameworkSetupModuleContextInterface;
          use MagentoFrameworkSetupSchemaSetupInterface;
          class UpgradeSchema implements UpgradeSchemaInterface{
          public function upgrade(SchemaSetupInterface $setup, ModuleContextInterface $context){
          if (version_compare($context->getVersion(), '2.0.1') < 0) {
          $setup->startSetup();
          $setup->getConnection()->addColumn(
          $setup->getTable('vendor_ecommerce'),
          'vendor_isallowstatus',
          ['type' => MagentoFrameworkDBDdlTable::TYPE_INT,
          'length' => '11',
          'nullable' => false,
          'default' => '0',
          'comment' => 'Vendor Is Allow Status']);
          $setup->endSetup();
          } } }


          Step:2
          app/code/Vendor/Ecommerce/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="Vendor_Ecommerce" setup_version="2.0.5">
          <sequence><module name="Vendor_Ecommerce"/></sequence>
          </module></config>


          Step:3
          After saving files, you need to run php bin/magento setup:upgrade. Now check your database and you will be able to find a new custom table and new column in 'vendor_ecommerce' table.





          share
























          • You code is good enough to apply, but other answer is more understandable. +1 for your effort and help. Thanks mate :)

            – Muhammad Anas
            Apr 19 at 5:57



















          1














          If you're using Magento >= 2.3 it could be much better to use declarative schema for db : https://devdocs.magento.com/guides/v2.3/extension-dev-guide/declarative-schema/db-schema.html





          share
























          • Thanks for the answer. +1

            – Muhammad Anas
            Apr 19 at 9:08



















          3 Answers
          3






          active

          oldest

          votes








          3 Answers
          3






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          1














          First Update your moudule.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="Your_Module" setup_version="1.0.1" schema_version="1.0.2">
          </module>
          </config>


          You can use UpgradeSchema.php

          Create UpgradeSchema.php in Setup/UpgradeSchema.php



          <?php

          namespace YourModuleSetup;

          use MagentoFrameworkSetupModuleContextInterface;
          use MagentoFrameworkSetupSchemaSetupInterface;
          use MagentoFrameworkSetupUpgradeSchemaInterface;

          class UpgradeSchema implements UpgradeSchemaInterface
          {
          public function upgrade(SchemaSetupInterface $setup, ModuleContextInterface $context)
          {
          $installer = $setup;

          $installer->startSetup();

          if(version_compare($context->getVersion(), '1.0.1', '<')) {
          $table = $installer->getTable('your_table');
          //Your alteration logic
          $columns = [
          'your_column' =>
          [
          'type' => MagentoFrameworkDBDdlTable::TYPE_TEXT,
          'nullable' => false,
          'length' => 512,
          'default' => null,
          'comment' => 'You Column Comment',
          ],
          ];

          $connection = $installer->getConnection();

          foreach ($columns as $name => $definition) {
          $connection->addColumn($table, $name, $definition);
          }
          }
          $installer->endSetup();
          }
          }




          share
























          • Thanks. Your code is easier to understand. +1 for that

            – Muhammad Anas
            Apr 19 at 5:57
















          1














          First Update your moudule.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="Your_Module" setup_version="1.0.1" schema_version="1.0.2">
          </module>
          </config>


          You can use UpgradeSchema.php

          Create UpgradeSchema.php in Setup/UpgradeSchema.php



          <?php

          namespace YourModuleSetup;

          use MagentoFrameworkSetupModuleContextInterface;
          use MagentoFrameworkSetupSchemaSetupInterface;
          use MagentoFrameworkSetupUpgradeSchemaInterface;

          class UpgradeSchema implements UpgradeSchemaInterface
          {
          public function upgrade(SchemaSetupInterface $setup, ModuleContextInterface $context)
          {
          $installer = $setup;

          $installer->startSetup();

          if(version_compare($context->getVersion(), '1.0.1', '<')) {
          $table = $installer->getTable('your_table');
          //Your alteration logic
          $columns = [
          'your_column' =>
          [
          'type' => MagentoFrameworkDBDdlTable::TYPE_TEXT,
          'nullable' => false,
          'length' => 512,
          'default' => null,
          'comment' => 'You Column Comment',
          ],
          ];

          $connection = $installer->getConnection();

          foreach ($columns as $name => $definition) {
          $connection->addColumn($table, $name, $definition);
          }
          }
          $installer->endSetup();
          }
          }




          share
























          • Thanks. Your code is easier to understand. +1 for that

            – Muhammad Anas
            Apr 19 at 5:57














          1












          1








          1







          First Update your moudule.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="Your_Module" setup_version="1.0.1" schema_version="1.0.2">
          </module>
          </config>


          You can use UpgradeSchema.php

          Create UpgradeSchema.php in Setup/UpgradeSchema.php



          <?php

          namespace YourModuleSetup;

          use MagentoFrameworkSetupModuleContextInterface;
          use MagentoFrameworkSetupSchemaSetupInterface;
          use MagentoFrameworkSetupUpgradeSchemaInterface;

          class UpgradeSchema implements UpgradeSchemaInterface
          {
          public function upgrade(SchemaSetupInterface $setup, ModuleContextInterface $context)
          {
          $installer = $setup;

          $installer->startSetup();

          if(version_compare($context->getVersion(), '1.0.1', '<')) {
          $table = $installer->getTable('your_table');
          //Your alteration logic
          $columns = [
          'your_column' =>
          [
          'type' => MagentoFrameworkDBDdlTable::TYPE_TEXT,
          'nullable' => false,
          'length' => 512,
          'default' => null,
          'comment' => 'You Column Comment',
          ],
          ];

          $connection = $installer->getConnection();

          foreach ($columns as $name => $definition) {
          $connection->addColumn($table, $name, $definition);
          }
          }
          $installer->endSetup();
          }
          }




          share













          First Update your moudule.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="Your_Module" setup_version="1.0.1" schema_version="1.0.2">
          </module>
          </config>


          You can use UpgradeSchema.php

          Create UpgradeSchema.php in Setup/UpgradeSchema.php



          <?php

          namespace YourModuleSetup;

          use MagentoFrameworkSetupModuleContextInterface;
          use MagentoFrameworkSetupSchemaSetupInterface;
          use MagentoFrameworkSetupUpgradeSchemaInterface;

          class UpgradeSchema implements UpgradeSchemaInterface
          {
          public function upgrade(SchemaSetupInterface $setup, ModuleContextInterface $context)
          {
          $installer = $setup;

          $installer->startSetup();

          if(version_compare($context->getVersion(), '1.0.1', '<')) {
          $table = $installer->getTable('your_table');
          //Your alteration logic
          $columns = [
          'your_column' =>
          [
          'type' => MagentoFrameworkDBDdlTable::TYPE_TEXT,
          'nullable' => false,
          'length' => 512,
          'default' => null,
          'comment' => 'You Column Comment',
          ],
          ];

          $connection = $installer->getConnection();

          foreach ($columns as $name => $definition) {
          $connection->addColumn($table, $name, $definition);
          }
          }
          $installer->endSetup();
          }
          }





          share











          share


          share










          answered Apr 19 at 5:47









          RizwanRizwan

          967526




          967526













          • Thanks. Your code is easier to understand. +1 for that

            – Muhammad Anas
            Apr 19 at 5:57



















          • Thanks. Your code is easier to understand. +1 for that

            – Muhammad Anas
            Apr 19 at 5:57

















          Thanks. Your code is easier to understand. +1 for that

          – Muhammad Anas
          Apr 19 at 5:57





          Thanks. Your code is easier to understand. +1 for that

          – Muhammad Anas
          Apr 19 at 5:57













          1














          Create file name called UpgradeSchema.php from your module Setup folders
          Ex: app/code/Vendor/Ecommerce/Setup/UpgradeSchema.php

          Here we are going to create column called vendor_isallowstatus

          Column name called : vendor_isallowstatus

          Table name : vendor_ecommerce

          adde below code into your file.



          Ex:



          if (version_compare($context->getVersion(), ‘2.0.5’) < 0) { //My new upgrade file version is 2.0.5 incase if 2.0.6 then set 2.0.6
          }


          Step:1



          <?php

          namespace VendorEcommerceSetup;
          use MagentoFrameworkSetupUpgradeSchemaInterface;
          use MagentoFrameworkSetupModuleContextInterface;
          use MagentoFrameworkSetupSchemaSetupInterface;
          class UpgradeSchema implements UpgradeSchemaInterface{
          public function upgrade(SchemaSetupInterface $setup, ModuleContextInterface $context){
          if (version_compare($context->getVersion(), '2.0.1') < 0) {
          $setup->startSetup();
          $setup->getConnection()->addColumn(
          $setup->getTable('vendor_ecommerce'),
          'vendor_isallowstatus',
          ['type' => MagentoFrameworkDBDdlTable::TYPE_INT,
          'length' => '11',
          'nullable' => false,
          'default' => '0',
          'comment' => 'Vendor Is Allow Status']);
          $setup->endSetup();
          } } }


          Step:2
          app/code/Vendor/Ecommerce/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="Vendor_Ecommerce" setup_version="2.0.5">
          <sequence><module name="Vendor_Ecommerce"/></sequence>
          </module></config>


          Step:3
          After saving files, you need to run php bin/magento setup:upgrade. Now check your database and you will be able to find a new custom table and new column in 'vendor_ecommerce' table.





          share
























          • You code is good enough to apply, but other answer is more understandable. +1 for your effort and help. Thanks mate :)

            – Muhammad Anas
            Apr 19 at 5:57
















          1














          Create file name called UpgradeSchema.php from your module Setup folders
          Ex: app/code/Vendor/Ecommerce/Setup/UpgradeSchema.php

          Here we are going to create column called vendor_isallowstatus

          Column name called : vendor_isallowstatus

          Table name : vendor_ecommerce

          adde below code into your file.



          Ex:



          if (version_compare($context->getVersion(), ‘2.0.5’) < 0) { //My new upgrade file version is 2.0.5 incase if 2.0.6 then set 2.0.6
          }


          Step:1



          <?php

          namespace VendorEcommerceSetup;
          use MagentoFrameworkSetupUpgradeSchemaInterface;
          use MagentoFrameworkSetupModuleContextInterface;
          use MagentoFrameworkSetupSchemaSetupInterface;
          class UpgradeSchema implements UpgradeSchemaInterface{
          public function upgrade(SchemaSetupInterface $setup, ModuleContextInterface $context){
          if (version_compare($context->getVersion(), '2.0.1') < 0) {
          $setup->startSetup();
          $setup->getConnection()->addColumn(
          $setup->getTable('vendor_ecommerce'),
          'vendor_isallowstatus',
          ['type' => MagentoFrameworkDBDdlTable::TYPE_INT,
          'length' => '11',
          'nullable' => false,
          'default' => '0',
          'comment' => 'Vendor Is Allow Status']);
          $setup->endSetup();
          } } }


          Step:2
          app/code/Vendor/Ecommerce/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="Vendor_Ecommerce" setup_version="2.0.5">
          <sequence><module name="Vendor_Ecommerce"/></sequence>
          </module></config>


          Step:3
          After saving files, you need to run php bin/magento setup:upgrade. Now check your database and you will be able to find a new custom table and new column in 'vendor_ecommerce' table.





          share
























          • You code is good enough to apply, but other answer is more understandable. +1 for your effort and help. Thanks mate :)

            – Muhammad Anas
            Apr 19 at 5:57














          1












          1








          1







          Create file name called UpgradeSchema.php from your module Setup folders
          Ex: app/code/Vendor/Ecommerce/Setup/UpgradeSchema.php

          Here we are going to create column called vendor_isallowstatus

          Column name called : vendor_isallowstatus

          Table name : vendor_ecommerce

          adde below code into your file.



          Ex:



          if (version_compare($context->getVersion(), ‘2.0.5’) < 0) { //My new upgrade file version is 2.0.5 incase if 2.0.6 then set 2.0.6
          }


          Step:1



          <?php

          namespace VendorEcommerceSetup;
          use MagentoFrameworkSetupUpgradeSchemaInterface;
          use MagentoFrameworkSetupModuleContextInterface;
          use MagentoFrameworkSetupSchemaSetupInterface;
          class UpgradeSchema implements UpgradeSchemaInterface{
          public function upgrade(SchemaSetupInterface $setup, ModuleContextInterface $context){
          if (version_compare($context->getVersion(), '2.0.1') < 0) {
          $setup->startSetup();
          $setup->getConnection()->addColumn(
          $setup->getTable('vendor_ecommerce'),
          'vendor_isallowstatus',
          ['type' => MagentoFrameworkDBDdlTable::TYPE_INT,
          'length' => '11',
          'nullable' => false,
          'default' => '0',
          'comment' => 'Vendor Is Allow Status']);
          $setup->endSetup();
          } } }


          Step:2
          app/code/Vendor/Ecommerce/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="Vendor_Ecommerce" setup_version="2.0.5">
          <sequence><module name="Vendor_Ecommerce"/></sequence>
          </module></config>


          Step:3
          After saving files, you need to run php bin/magento setup:upgrade. Now check your database and you will be able to find a new custom table and new column in 'vendor_ecommerce' table.





          share













          Create file name called UpgradeSchema.php from your module Setup folders
          Ex: app/code/Vendor/Ecommerce/Setup/UpgradeSchema.php

          Here we are going to create column called vendor_isallowstatus

          Column name called : vendor_isallowstatus

          Table name : vendor_ecommerce

          adde below code into your file.



          Ex:



          if (version_compare($context->getVersion(), ‘2.0.5’) < 0) { //My new upgrade file version is 2.0.5 incase if 2.0.6 then set 2.0.6
          }


          Step:1



          <?php

          namespace VendorEcommerceSetup;
          use MagentoFrameworkSetupUpgradeSchemaInterface;
          use MagentoFrameworkSetupModuleContextInterface;
          use MagentoFrameworkSetupSchemaSetupInterface;
          class UpgradeSchema implements UpgradeSchemaInterface{
          public function upgrade(SchemaSetupInterface $setup, ModuleContextInterface $context){
          if (version_compare($context->getVersion(), '2.0.1') < 0) {
          $setup->startSetup();
          $setup->getConnection()->addColumn(
          $setup->getTable('vendor_ecommerce'),
          'vendor_isallowstatus',
          ['type' => MagentoFrameworkDBDdlTable::TYPE_INT,
          'length' => '11',
          'nullable' => false,
          'default' => '0',
          'comment' => 'Vendor Is Allow Status']);
          $setup->endSetup();
          } } }


          Step:2
          app/code/Vendor/Ecommerce/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="Vendor_Ecommerce" setup_version="2.0.5">
          <sequence><module name="Vendor_Ecommerce"/></sequence>
          </module></config>


          Step:3
          After saving files, you need to run php bin/magento setup:upgrade. Now check your database and you will be able to find a new custom table and new column in 'vendor_ecommerce' table.






          share











          share


          share










          answered Apr 19 at 5:48









          Rakesh DongaRakesh Donga

          2,681317




          2,681317













          • You code is good enough to apply, but other answer is more understandable. +1 for your effort and help. Thanks mate :)

            – Muhammad Anas
            Apr 19 at 5:57



















          • You code is good enough to apply, but other answer is more understandable. +1 for your effort and help. Thanks mate :)

            – Muhammad Anas
            Apr 19 at 5:57

















          You code is good enough to apply, but other answer is more understandable. +1 for your effort and help. Thanks mate :)

          – Muhammad Anas
          Apr 19 at 5:57





          You code is good enough to apply, but other answer is more understandable. +1 for your effort and help. Thanks mate :)

          – Muhammad Anas
          Apr 19 at 5:57











          1














          If you're using Magento >= 2.3 it could be much better to use declarative schema for db : https://devdocs.magento.com/guides/v2.3/extension-dev-guide/declarative-schema/db-schema.html





          share
























          • Thanks for the answer. +1

            – Muhammad Anas
            Apr 19 at 9:08
















          1














          If you're using Magento >= 2.3 it could be much better to use declarative schema for db : https://devdocs.magento.com/guides/v2.3/extension-dev-guide/declarative-schema/db-schema.html





          share
























          • Thanks for the answer. +1

            – Muhammad Anas
            Apr 19 at 9:08














          1












          1








          1







          If you're using Magento >= 2.3 it could be much better to use declarative schema for db : https://devdocs.magento.com/guides/v2.3/extension-dev-guide/declarative-schema/db-schema.html





          share













          If you're using Magento >= 2.3 it could be much better to use declarative schema for db : https://devdocs.magento.com/guides/v2.3/extension-dev-guide/declarative-schema/db-schema.html






          share











          share


          share










          answered Apr 19 at 7:02









          dharthdharth

          284




          284













          • Thanks for the answer. +1

            – Muhammad Anas
            Apr 19 at 9:08



















          • Thanks for the answer. +1

            – Muhammad Anas
            Apr 19 at 9:08

















          Thanks for the answer. +1

          – Muhammad Anas
          Apr 19 at 9:08





          Thanks for the answer. +1

          – Muhammad Anas
          Apr 19 at 9:08



          Popular posts from this blog

          Plaza Victoria

          Brian Clough

          Cáceres