Hello Magento Friends,
Today’s tutorial will teach you How to Truncate Table from Database using Data Patch in Magento 2. Previously I have also explained How to Drop Table from Database using Data Patch in Magento 2.
Truncating removes the data inside the table but not the table. In Magento 2, you can truncate table from database using data patch interface and root script.
So, let us look at both ways to truncate table from database in Magento 2.
Contents
Here we will truncate the table from the database using 2 methods.
Step 1: Create the TruncateTable.php file inside the Setup folder at the below path.
app\code\Vendor\Extension\Setup\Patch\Schema\TruncateTable.php
And add the code as follows
<?php namespace Vendor\Extension\Setup\Patch\Schema; use Magento\Framework\Setup\SchemaSetupInterface; use Magento\Framework\Setup\Patch\PatchVersionInterface; use Magento\Framework\Setup\Patch\SchemaPatchInterface; class TruncateTable implements SchemaPatchInterface, PatchVersionInterface { private $schemaSetup; public function __construct( SchemaSetupInterface $schemaSetup ) { $this->schemaSetup = $schemaSetup; } public function apply() { $this->schemaSetup->startSetup(); $tableName = $this->schemaSetup->getTable('Persons'); // Enter Your Table Name if ($this->schemaSetup->tableExists($tableName)) { $this->schemaSetup->getConnection()->truncateTable($tableName); } $this->schemaSetup->endSetup(); } public static function getDependencies() { return []; } public static function getVersion() { return '1.0.3'; // please enter version upper than current // example : current version : 1.0.1 -> use : 1.0.2 } public function getAliases() { return []; } }
Step 2: Run the below command to remove a table from the database.
php bin/magento setup:upgrade
Note: Please check whether your patch_name exists in the “patch_list” database table or not. If it exists, please remove the column.
We will use the factory class to truncate the table. Let’s see how we can do that.
Step 1: Create a truncatetable.php file in your Magento root directory. Here we need to use the model factory class to truncate the table.
Add the code as follows
<?php use Magento\Framework\App\Bootstrap; require __DIR__ . '/app/bootstrap.php'; $bootstraps = Bootstrap::create(BP, $_SERVER); $object_Manager = $bootstraps->getObjectManager(); $app_state = $object_Manager->get('\Magento\Framework\App\State'); $app_state->setAreaCode('frontend'); try { $bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $_SERVER); $objectManager = $bootstrap->getObjectManager(); $appState = $objectManager->get('\Magento\Framework\App\State'); $appState->setAreaCode('frontend'); $objectManager= \Magento\Framework\App\ObjectManager::getInstance(); // enter your Extension Factory Class $locationTruncate = $objectManager->get('\Vendor\Extension\Model\LocationFactory')->create(); $connection = $locationTruncate->getCollection()->getConnection(); $tableName = $locationTruncate->getCollection()->getMainTable(); $connection->truncateTable($tableName); } catch(\Exception $e) { print_r($e->getMessage()); }
This way, you can Truncate Table from Database using Data Patch Interface in Magento 2. If you face any hardship, share it with me through the comment section. Keep in touch with us for the latest Magento tutorials.
Happy Coding!
Hello Magento Friends, In this blog, we will discuss about adding quantity increment and decrement…
In this guide, we'll explore how to integrate ChatGPT, an AI-powered chatbot, with a Laravel…
In the world of business, understanding financial metrics is crucial for making informed decisions and…
Welcome to the MageComp Monthly Digest, where we bring you the latest updates, releases, and…
In this era, businesses are always on the lookout for ways to engage with their…
Managing a Shopify store efficiently involves keeping your product catalog organized. This includes removing outdated…