self::DOMAINS_COLUMNS, 'device_long_urls' => ['long_url'], 'short_urls' => ['original_url'], ]; public function up(Schema $schema): void { $textType = Type::getType(Types::TEXT); foreach (self::TEXT_COLUMNS as $table => $columns) { $t = $schema->getTable($table); foreach ($columns as $column) { $c = $t->getColumn($column); if ($c->getType() === $textType) { continue; } if (in_array($column, self::DOMAINS_COLUMNS, true)) { // Domain columns had an incorrect length $t->modifyColumn($column, ['length' => 2048]); } $c->setType($textType); } } } public function down(Schema $schema): void { // Can't revert from TEXT to STRING, as it's bigger } public function isTransactional(): bool { return ! ($this->connection->getDatabasePlatform() instanceof MySQLPlatform); } }