Anpassung des Schema für Attribute
Die Datenbankeigenschaften für Attribute werden über den Schemamanager manipuliert - mehr dazu beim Schemamanager. Geprüft und ausgeführt werden die Änderungen beim Ablauf der DB-Migration - diese kann über den Contao-Manager oder über die Konsole angestoßen werden.
Im folgenden Beispiel wird das Feld des Attributes Langtext von TEXT (65535) auf MEDIUMTEXT (16777215) geändert - siehe Doctrine.
1<?php
2// src/AppBundle/EventListener/SchemaManagerListener.php
3namespace AppBundle\EventListener;
4
5use MetaModels\Information\MetaModelCollectionInterface;
6use MetaModels\Schema\Doctrine\DoctrineSchemaGeneratorInterface;
7use MetaModels\Schema\Doctrine\DoctrineSchemaInformation;
8
9final class SchemaManagerListener implements DoctrineSchemaGeneratorInterface
10{
11 public function generate(DoctrineSchemaInformation $schema, MetaModelCollectionInterface $collection): void
12 {
13 if (!$schema->getSchema()->hasTable('mm_employees')) {
14 return;
15 }
16
17 $table = $schema->getSchema()->getTable('mm_employees');
18
19 $table->getColumn('vita')->setLength(16777215);
20 }
21}
1# src/AppBundle/Resources/config/services.yml
2services:
3 # SchemaManagerListener:
4 AppBundle\EventListener\SchemaManagerListener:
5 tags:
6 - { name: 'metamodels.schema-generator.doctrine', priority: -20 }