In this article, we will find out 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: \Magento\Framework\Db\Ddl\Table.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


Share This

Share this post with your friends!