SecondLongDesc/migration/data/Version20230403083243.php

86 lines
2.4 KiB
PHP

<?php
declare(strict_types=1);
namespace D3\CategoryLongtext\Migrations;
use Doctrine\DBAL\DBALException;
use Doctrine\DBAL\Migrations\AbstractMigration;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\DBAL\Schema\SchemaException;
use Doctrine\DBAL\Types\TextType;
use OxidEsales\Eshop\Core\DatabaseProvider;
use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
use OxidEsales\Eshop\Core\Exception\DatabaseErrorException;
/**
* Auto-generated Migration: Please modify to your needs!
*/
final class Version20230403083243 extends AbstractMigration
{
public function getDescription() : string
{
return 'Check and set of potential missing columns';
}
/**
* @throws SchemaException
* @throws DBALException
* @throws DatabaseErrorException
* @throws DatabaseConnectionException
*/
public function up(Schema $schema) : void
{
$this->connection->getDatabasePlatform()->registerDoctrineTypeMapping('enum', 'string');
$table = $schema->getTable('oxcategories');
$table->hasColumn('D3LONGDESC2') ?:
$table->addColumn('D3LONGDESC2', (new TextType::class)->getName())
->setNotnull(true);
$table->hasColumn('D3LONGDESC2_1') ?:
$table->addColumn('D3LONGDESC2_1', (new TextType::class)->getName())
->setNotnull(true);
$table->hasColumn('D3LONGDESC2_2') ?:
$table->addColumn('D3LONGDESC2_2', (new TextType::class)->getName())
->setNotnull(true);
$table->hasColumn('D3LONGDESC2_3') ?:
$table->addColumn('D3LONGDESC2_3', (new TextType::class)->getName())
->setNotnull(true);
$this->postProcesses();
}
/**
* @throws DatabaseErrorException
* @throws DatabaseConnectionException
*/
public function postProcesses(){
$sAltering = 'ALTER TABLE oxcategories MODIFY
? text
CHARACTER SET latin1
COLLATE latin1_swedish_ci;';
$aAlterColumns = [
'D3LONGDESC2',
'D3LONGDESC2_1',
'D3LONGDESC2_2',
'D3LONGDESC2_3'
];
foreach ($aAlterColumns as $column){
DatabaseProvider::getDb()->execute($sAltering, $column);
}
}
public function down(Schema $schema) : void
{
// this down() migration is auto-generated, please modify it to your needs
}
}