How to Setup and Upgrade Database in Magento 2

February 2, 2021
By Cozmot

Deprecated: pathinfo(): Passing null to parameter #1 ($path) of type string is deprecated in /var/www/html/wp-content/plugins/urvanov-syntax-highlighter/class-urvanov-syntax-highlighter-langs.php on line 86

how to install and upgrade sql script for module in Magento 2. When you install or upgrade a module, you may need to change the database structure or add some new data for current table. To do this, Magento 2 provide you some classes which you can do all of them. Table of content 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:

Elaborating each step,

  1. Install Schema
    Create file: app/code/Cozmot/HelloWorld/Setup/InstallSchema.php

In this file, we created a table with name “data_example” with four columns: example_id, title, content, created_at with data types are integer, varchar, text, timestamp
You can review all data types in this file: MagentoFrameworkDbDdlTable.php

2. Install Data
File: app/code/Cozmot/HelloWorld/Setup/InstallData.php

Here,  we insert a row with value for “title” and “content” columns to data_example table.

3. Upgrade Schema
File: app/code/ Cozmot/HelloWorld/Setup/UpgradeSchema.php

Here, note that we have to check module version in upgrade function. In this example, we upgraded module from version 1.0.0 to 1.0.1. Drop created_at column from the data_example table.

4. Upgrade Data
File: app/code/ Cozmot/HelloWorld/Setup/UpgradeData.php


Subscribe To Our Newsletter

Join our mailing list to receive the latest news and updates from our team.

You have Successfully Subscribed!