Como criar/atualizar dados com InstallData e UpgradeData 마젠토 2 없음

컨텍스트리잔도



데이터를 설치하고 데이터를 업그레이드하고 데이터를 업그레이드하는 클래스로서의 마젠토 포스, 프로세스 및 SQL에 자동으로 삽입되는 스크립트를 작성하십시오.

instalações e atualizações de esquema로 활용하시겠습니까?



클래스로 데이터 설치 및 업그레이드 데이터 제공, 변경 및 업데이트는 다도스에서 사용할 수 있습니다. E elas devem ser usadas em versões anteriores a versão 2.3 do Magento 2, mas para versões posteriores é recomendado o uso de classes do tipo Data Patch.

데이터 클래스 설치 데이터 및 업그레이드 데이터와 호환되지 않는 데이터 업데이트db_schema.xml u 스키마 패치와 업데이트된 데이터 업그레이드 데이터를 설치하거나 데이터를 업그레이드하십시오. Essas 클래스 devem ser usadas para quando as tabelas forem criadas com 설치 스키마 e 업그레이드 스키마, saiba como criar/atualizar .


Código para a inserir dados em uma tabela



데이터 설치



Essa classe será executada o modulo for instalado e perishirá os dados nas tabelas do banco, ou seja, essa classe pode ser utilizada para inserir, remover e/ou alterar dados no banco de uma tabela especifica. 클래스로 데이터를 설치하려면 클래스가 스키마를 설치해야 합니다.

파스타 설치 데이터 개발\{Vendor}\{Module}\Setup\InstallData 인터페이스 구현 개발\Magento\Framework\Setup\InstallDataInterface , 도구 설치 데이터 구현install(\Magento\Framework\Setup\ModuleDataSetupInterface $setup, \Magento\Framework\Setup\ModuleContextInterface $context) . 인터페이스ModuleDataSetupInterface gera através de injeção de 의존적 um objeto de configuração que fornece muitas funções para interagir com o servidor do banco de dados. 인터페이스ModuleContextInterface possui apenas o métodogetVersion() , que retorna a versão atual do modulo, ou seja, retorna o valor do atributosetup_version do arquivomodule.xml
<?php

namespace Vendor\Module\Setup;

use Magento\Framework\Setup\InstallDataInterface;
use Magento\Framework\Setup\ModuleDataSetupInterface;
use Magento\Framework\Setup\ModuleContextInterface;

class InstallData implements InstallDataInterface
{
    public function install(
        ModuleDataSetupInterface $setup,
        ModuleContextInterface $context
    ): void {
        $setup->startSetup();
        $setup->getConnection()->insert(
            $setup->getTable('{table_name}'),
            [
                '{column_name_1}' => '{value}',
                '{column_name_2}' => 1,
                '{column_name_3}' => {true/false},
                '{column_name_n}' => '0000-00-00'
            ]
        );
        $setup->endSetup();
    }
}


데이터 업그레이드



Essa classe será executada quando o modulo for atualizado para adicionar/remover os dados para as tabelas do banco de dados.

파스타를 위한 업그레이드 데이터 개발\{Vendor}\{Module}\Setup\UpgradeData 및 인터페이스 구현\Magento\Framework\Setup\UpgradeDataInterface, 구현 방법upgrade(\Magento\Framework\Setup\ModuleDataSetupInterface $setup, \Magento\Framework\Setup\ModuleContextInterface $context) . 인터페이스ModuleDataSetupInterface gera através de injeção de 의존적 um objeto de configuração que fornece muitas funções para interagir com o servidor do banco de dados. 인터페이스ModuleContextInterface possui apenas o métodogetVersion() , que retorna a versão atual do modulo, ou seja, retorna o valor do atributosetup_version do arquivomodule.xml
<?php

namespace {Vendor}\{Module}\Setup;

use Magento\Framework\Setup\UpgradeDataInterface;
use Magento\Framework\Setup\ModuleDataSetupInterface;
use Magento\Framework\Setup\ModuleContextInterface;

class UpgradeData implements UpgradeDataInterface
{
    public function upgrade(
        ModuleDataSetupInterface $setup,
        ModuleContextInterface $context
    ): void {
        $setup->startSetup();

        if (version_compare($context->getVersion(), '{version_to_implement}', '<')) {
            $this->upgradeVersion($setup);
        }

        $setup->endSetup();
    }

    private function upgradeVersion(ModuleDataSetupInterface $setup): void
    {
        $setup->getConnection()->insert(
            $setup->getTable('{table_name}'),
            [
                '{column_name_1}' => '{value}',
                '{column_name_2}' => 1,
                '{column_name_3}' => {true/false},
                '{column_name_n}' => '0000-00-00'
            ]
        );
    }
}



<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
    <module name="{Vendor}_{Module}" setup_version="{version_number}" />
</config>



피날리잔도



Valores entre chaves ({test}) devem ser alterados na implementação do código.



Habilitando Habilitando as alterações



Comando para atualizar os dados e o esquema do banco de dados.

php bin/magento setup:upgrade


디레토리오스 에 아르키보스



세게 a lista de diretórios e arquivos que devem ser criados.

- app/
  - code/
    - {Vendor}/
        - {Module}/
          - etc/
            - module.xml
          - Setup/
            - InstallData.php
            - UpgradeData.php
          - registration.php
          - composer.json

좋은 웹페이지 즐겨찾기