* * @copyright Copyright (c) 2022 OXID eSales AG (https://www.oxid-esales.com) * @copyright Copyright (c) 2022 O3-Shop (https://www.o3-shop.com) * @license https://www.gnu.org/licenses/gpl-3.0 GNU General Public License 3 (GPLv3) */ declare(strict_types=1); namespace OxidEsales\EshopCommunity\Migrations; use Doctrine\DBAL\Schema\Schema; use Doctrine\DBAL\Types\IntegerType; use Doctrine\Migrations\AbstractMigration; final class Version20230405094126 extends AbstractMigration { protected string $columnname = 'OXISPLAIN'; public function getDescription() : string { return 'add plain option to content elements'; } public function up(Schema $schema) : void { $this->connection->getDatabasePlatform()->registerDoctrineTypeMapping('enum', 'string'); $table = $schema->getTable('oxcontents'); $this->skipIf( $table->hasColumn($this->columnname), 'column already exists'); $table->addColumn($this->columnname, (new IntegerType())->getName()) ->setLength(1) ->setNotnull(true) ->setDefault(0); } public function down(Schema $schema) : void { $this->connection->getDatabasePlatform()->registerDoctrineTypeMapping('enum', 'string'); $table = $schema->getTable('oxcontents'); $this->skipIf( !$table->hasColumn($this->columnname), 'column doesn\'t exist'); $table->dropColumn($this->columnname); } }