Reading list Switch to dark mode

    Delete an existing Foreign key in Magento 2 Installer

    Updated 21 February 2024

    If you want to Delete an existing foreign key from a table by using a patch file, then you can use the following code:

    <?php
    
    namespace Webkul\Test\Setup\Patch\Schema;
    
    use Magento\Framework\Setup\SchemaSetupInterface;
    use Magento\Framework\Setup\Patch\PatchVersionInterface;
    use Magento\Framework\Setup\Patch\SchemaPatchInterface;
    use Magento\Framework\Setup\Patch\DataPatchInterface;
    
    class DropExistingForeignKey implements SchemaPatchInterface, PatchVersionInterface
    {
    
        private $schemaSetup;
    
        public function __construct(
            SchemaSetupInterface $schemaSetup
        ) {
            $this->schemaSetup = $schemaSetup;
        }
    
        public function apply()
        {
    
          $this->schemaSetup->startSetup();
          $tableName = $this->schemaSetup->getTable('wk_sellerstorepickup_store_store_view');
          
          $existingForeignKeys = $this->schemaSetup->getConnection()->getForeignKeys($tableName);
            foreach ($existingForeignKeys as $key) {
                $this->schemaSetup->getConnection()->dropForeignKey($key['TABLE_NAME'], $key['FK_NAME']);
          }
          $this->schemaSetup->endSetup();
        }
        /**
        * Get dependencies
        */
       public static function getDependencies()
       {
           return [];
       }
    
         /**
         * {@inheritdoc}
         */
        public static function getVersion()
        {
            return '2.0.4';
        }
    
       /**
        * Get Aliases
        */
       public function getAliases()
       {
           return [];
       }
    
    }

    If you want to add a foreign key in your table then refer following blog:

    Add Foreign Key In Magento2

    I hope this blog will help you with Delete an existing Foreign key in Magento 2 Installer. You may also check our wide range of best Magento 2 Extensions.

    Please reach out to our team via a support ticket if you have any queries.

    Searching for an experienced
    Magento 2 Company ?
    Find out More

    Try this and if you have any queries then just comment below 🙂

    . . .

    Leave a Comment

    Your email address will not be published. Required fields are marked*


    Be the first to comment.

    Back to Top

    Message Sent!

    If you have more details or questions, you can reply to the received confirmation email.

    Back to Home