Magento 2 Install Schema

Em alguns módulos que trabalhamos no dia-a-dia como desenvolvedores Magento 2, precisamos criar uma tabela customizada para o nosso módulo. Neste artigo, falaremos sobre Magento 2 Install Schema.

Magento 2 Install Schema

O Magento 2 já tem uma solução pronta para adicionarmos tabelas customizadas de nossos módulos no seu banco de dados. Para a criação de tabela, nós precisaremos trabalhar com o Setup InstallSchema.

Para isso, criamos um novo módulo chamado Blog em: app/code/ForMage/Blog

Então, criamos o diretório Setup em nosso módulo e a classe InstallSchema, conforme abaixo:

<?php

namespace ForMage\Blog\Setup;

use Magento\Framework\Setup\InstallSchemaInterface;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\Setup\SchemaSetupInterface;
use Magento\Framework\DB\Ddl\Table;

class InstallSchema implements InstallSchemaInterface
{
    /**
     * @param SchemaSetupInterface $setup
     * @param ModuleContextInterface $context
     */
    public function install(
        SchemaSetupInterface $setup,
        ModuleContextInterface $context
    ) {
        $setup->startSetup();

        if (!$setup->tableExists('post')) {
            $table = $setup->getConnection()
                ->newTable('post')
                ->addColumn(
                    'entity_id',
                    Table::TYPE_INTEGER,
                    null,
                    [
                        'identity' => true,
                        'nullable' => false,
                        'primary' => true
                    ],
                    'Entity Id'
                )->addColumn(
                    'title',
                    Table::TYPE_TEXT,
                    255,
                    [
                        'nullable' => false
                    ],
                    'Post Title'
                )->addColumn(
                    'description',
                    Table::TYPE_TEXT,
                    null,
                    [
                        'nullable' => false
                    ],
                    'Post Description'
                )->addColumn(
                    'created_at',
                    Table::TYPE_TIMESTAMP,
                    null,
                    [
                        'nullable' => false,
                        'default' => Table::TIMESTAMP_INIT
                    ]
                )->addColumn(
                    'updated_at',
                    Table::TYPE_TIMESTAMP,
                    null,
                    [
                        'nullable' => false,
                        'default' => Table::TIMESTAMP_INIT_UPDATE
                    ]
                );
        }

        $setup->getConnection()->createTable($table);

        $setup->endSetup();
    }
}

No script acima, nós estamos criando uma tabela customizada chamada post. Nela temos as seguintes colunas: entity_id, title, description, created_at e updated_at.

Note que precisamos implementar a classe Magento\Framework\Setup\InstallSchemaInterface .

Feito isso, basta rodarmos php bin/magento setup:upgrade. Consultando o banco de dados, temos a nossa tabela post criada com sucesso:

Magento 2 - Trabalhando com InstallSchema

 

Importante: O Setup/InstallSchema só será executado uma vez. Após a instalação do módulo, o Magento 2 não executará novamente.

Para maiores explicações, por favor, veja o vídeo acima.

Para mais informações, veja.

 

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *