Feldgrößenänderung Datenbank

Hi!

Wir hatten das Problem, dass unser Kunde für die metaDescription der Produkte mehr Informationen angeben wollte. Deswegen haben wir in der Datenbank das Feld von 254 Zeichen auf 1024 erhöht. Das war ganz einfach.
Jetzt ist es so, dass unser Import-Script für Artikel die API benutzt und die Daten aktualisiert. Wenn jetzt besagter Text importiert/angepasst werden soll, erhalte ich eine Fehlermeldung, weil zuviel Text benutzt würde. Es wären nur 255 Zeichen erlaubt.

Next Vin\ShopwareSdk\Exception\ShopwareResponseException: {"errors":[{"code":"d94b19cc-114f-4f44-9cc4-4138e80a87b9","status":"400","detail":"Diese Zeichenkette ist zu lang. Sie sollte h\u00f6chstens 255 Zeichen haben.","template":"This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.","meta":{"parameters":{"{{ value }}":"\u0022Hier steht jetzt ganz viel TextHier steht jetzt ganz viel TextHier steht jetzt ganz viel TextHier steht jetzt ganz viel TextHier steht jetzt ganz viel TextHier steht jetzt ganz viel TextHier steht jetzt ganz viel TextHier steht jetzt ganz viel TextHier steht jetzt ganz viel TextHier steht jetzt ganz viel TextHier steht jetzt ganz viel TextHier steht jetzt ganz viel TextHier steht jetzt ganz viel TextHier steht jetzt ganz viel TextHier steht jetzt ganz viel TextHier steht jetzt ganz viel TextHier steht jetzt ganz viel Text\u0022","{{ limit }}":"255"}},"source":{"pointer":"\/0\/translations\/2fbb5fe2e29a4d70aa5854ce7ce3e20b\/metaDescription"}}]} in /var/www/vhosts/.../vendor/vin-sw/shopware-sdk/src/Repository/EntityRepository.php:144

Wo muss ich jetzt (updatesicher) noch angeben, dass dieses Feld jetzt größer ist?
Oder wie mache ich das am besten ohne in die Datenbank einzugreifen?

Grüße
Jens

Das ist auf jeden Fall der falsche Ansatz. Die Felder werden ja in den Entity-Definitions und Migration-Files definiert. metaDescription ist ein StringField mit einer Default-Länge von 255. D.h. du müsstest die core/Content/Product/Aggregate/ProductTranslation/ProductTranslationDefinition.php extenden. Wie das geht, steht hier. In dem Guide wird ein Feld über $collection->add() hinzugefügt. Überschreiben kann man es vermutlich mit $collection->set().
Dann noch eine Migration-File erstellen, in der du den Feldtypen anpasst:

ALTER TABLE `product_translation` MODIFY `meta_description` MEDIUMTEXT;

Bessere Idee:
Deinem Kunden sagen, dass eine Meta-Description von mehr als 255 Zeichen unnütz ist :wink: Sich im schlechtesten Fall sogar negativ auf das Ranking auswirkt. Empfohlen werden sogar maximal 160 Zeichen. Alles was länger ist, wird von Google eh abgeschnitten.