Home / MAGENTO 2 / Please follow the following these steps to Create and Upgrade Database in Magento 2

Please follow the following these steps to Create and Upgrade Database in Magento 2

Please follow the following these steps to Create and Upgrade Database in Magento 2:

Install Schema
Install Data
Upgrade Schema
Upgrade Data

Magento 2 provides some classes in the directory app/code/[Namespace]/[ModuleName]/

Setup to create or upgrade database.

InstallSchema – setup database structure
InstallData – initial the data for database table.
UpgradeSchema – upgraded database structure
UpgradeData – upgraded (add/remove) data from table.
Functions of these classes will be run when we install or upgrade module by this command line:

php bin/magento setup:upgrade

In this topic, we will use these classes to setup database for Magestore_

Install Schema

We use module vendor Magestore and module name is DataExample.

Create file: app/code/Magestore/DataExample/Setup/InstallSchema.php

namespace Magestore\DataExample\Setup;
class InstallSchema implements \Magento\Framework\Setup\InstallSchemaInterface
{
 public function install(
 \Magento\Framework\Setup\SchemaSetupInterface $setup,
 \Magento\Framework\Setup\ModuleContextInterface $context
 ){
 $installer = $setup;
 $installer->startSetup();
 
 $table = $installer->getConnection()
 ->newTable($installer->getTable('data_example'))
 ->addColumn(
 'example_id',
 \Magento\Framework\Db\Ddl\Table::TYPE_INTEGER,
 null,
 ['identity' => true, 'nullable' => false, 'primary' => true, 'unsigned' => true],
 'Example Id'
 )->addColumn(
 'title',
 \Magento\Framework\Db\Ddl\Table::TYPE_TEXT,
 255,
 ['nullable' => false],
 'Example Title'
 )->addColumn(
 'content',
 \Magento\Framework\Db\Ddl\Table::TYPE_TEXT,
 '2M',
 [],
 'Example Content'
 )->addColumn(
 'created_at',
 \Magento\Framework\Db\Ddl\Table::TYPE_TIMESTAMP,
 null,
 ['nullable' => false, 'default' => \Magento\Framework\Db\Ddl\Table::TIMESTAMP_INIT],
 'Created At'
 );
 $installer->getConnection()->createTable($table);
 $installer->endSetup();
 }
}

In this file, we created a table has name “data_example” with 4 columns: example_id, title, content, created_at with data types are interger, varchar, text, timestamp

You can review all data types in this file: \Magento\Framework\Db\Ddl\Table.php

Install Data

File: app/code/Magestore/DataExample/Setup/InstallData.php

<?php namespace Magestore\DataExample\Setup; use Magento\Framework\Setup\InstallDataInterface; use Magento\Framework\Setup\ModuleContextInterface; use Magento\Framework\Setup\ModuleDataSetupInterface; class InstallData implements InstallDataInterface { protected $_exampleFactory; public function __construct(\Magestore\DataExample\Model\ExampleFactory $exampleFactory) { $this->_exampleFactory = $exampleFactory;
    }
 
    public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
    {
        $data = [
            'title' => "First example title",
            'content' => "First Example content"
        ];
        $example = $this->_exampleFactory->create();
        $example->addData($data)->save();
    }
}

In this file we insert a row with value for “title” and “content” columns to data_example table.

Upgrade Schema

File: app/code/Magestore/DataExample/Setup/UpgradeSchema.php

<?php namespace Magestore\DataExample\Setup; use Magento\Framework\Setup\UpgradeSchemaInterface; use Magento\Framework\Setup\SchemaSetupInterface; use Magento\Framework\Setup\ModuleContextInterface; class UpgradeSchema implements UpgradeSchemaInterface { public function upgrade( SchemaSetupInterface $setup, ModuleContextInterface $context ) { $installer = $setup; $installer->startSetup();
 if(version_compare($context->getVersion(), '1.0.1', '<')) { $installer->getConnection()->dropColumn(
 $installer->getTable('data_example'),
 'created_at'
 );
 }
 
 $installer->endSetup();
 }
}

Note: We have to check module version of in upgrade function. In this example we upgraded module from version 1.0.0 to 1.0.1. Drop created_at column from data_example table.

Upgrade Data

File: app/code/Magestore/DataExample/Setup/UpgradeData.php

<?php namespace Magestore\DataExample\Setup; use Magento\Framework\Setup\UpgradeDataInterface; use Magento\Framework\Setup\ModuleDataSetupInterface; use Magento\Framework\Setup\ModuleContextInterface; class UpgradeData implements UpgradeDataInterface { protected $_exampleFactory; public function __construct(\Magestore\DataExample\Model\ExampleFactory $exampleFactory) { $this->_exampleFactory = $exampleFactory;
 }
 
 public function upgrade( ModuleDataSetupInterface $setup, ModuleContextInterface $context ) {
 if ( version_compare($context->getVersion(), '1.0.1', '<' )) { $data = [ 'title' => "The second example title",
 'content' => "The second example content"
 ];
 $example = $this->_exampleFactory->create();
 $example>addData($dalogta)->save();
 }
 }
}
 

These are all steps to Create and Upgrade Database in Magento 2. Hope all you guys can learn magento 2 easier with our series lesson.

The 4 steps I mention above is the shortest process for you to Create and Upgrade Database in Magento 2. With this guide, you can manage the Database in Magento 2 easily.

About Sushil_kumar

Check Also

magento-coding-recommendations-to-optimize-site-performance

How to optimize magento code?

How to optimize magento code The code influences the speed of your site. The testing …

One comment

  1. Some Elementary Advice To Effectively Defeat Panic Attacks

    Did you know that people with higher than normal intelligence are prone to panic attacks? If you experience these attacks, hopefully this knowledge along with the other helpful tips in this article will assist you with finding peace of mind in trying to deal with your situation.
    https://www.acheterviagrafr24.com/

Leave a Reply

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

0

January 24, 2017

Clear all