Ergebnis 1 bis 6 von 6

Thema: Exception nach Update auf MM 2.2

  1. #1
    Contao-Nutzer Avatar von Diana
    Registriert seit
    30.10.2009.
    Ort
    Karlsruhe
    Beiträge
    52
    Partner-ID
    11708

    Standard Exception nach Update auf MM 2.2

    Hallo Community,

    nach einem Update auf Contao 4.9 und Metamodels 2.2 läuft die Metamodels-Erweiterung nicht mehr.

    Entwicklungsumgebung:
    PHP 7.4.33
    MySQL 5.7
    Contao 4.9.41
    MetaModels core 2.2.9
    MetaModels Start-Bundle 2.2.0
    Contao-Manager 1.6.3


    Frontend-Fehler:
    https://dev.bbseminar.de/seminare-nach-kategorie.html
    Den Debug-Mode seh nur ich, oder?
    ###
    Argument 7 passed to MetaModels\ItemList::__construct() must be of the type string, null given, called in /html/contao/vendor/metamodels/core/src/CoreBundle/Controller/ListControllerTrait.php on line 141
    ###


    Contao-Manager sagt: "Database problem found"
    Wenn ich das Install-Tool aufrufe, kommt diese Exception:
    ###
    Unknown database type enum requested, Doctrine\DBAL\Platforms\MySQL57Platform may not support it.
    ###

    composer.json:
    Code:
    {
        "type": "project",
        "require": {
            "codefog/contao-news_categories": "^3.2",
            "contao/calendar-bundle": "4.9.*",
            "contao/comments-bundle": "4.9.*",
            "contao/conflicts": "*@dev",
            "contao/faq-bundle": "4.9.*",
            "contao/listing-bundle": "4.9.*",
            "contao/manager-bundle": "4.9.*",
            "contao/news-bundle": "4.9.*",
            "contao/newsletter-bundle": "4.9.*",
            "fritzmg/contao-sharebuttons": "^2.1",
            "jrgregory/m17-sticky-backend-footer": "^2.0",
            "metamodels/bundle_start": "^2.1",
            "metamodels/core": "^2.1",
            "netzhirsch/cookie-opt-in-bundle": "^2.2",
            "terminal42/notification_center": "^1.5"
        },
        "extra": {
            "contao-component-dir": "assets"
        },
        "scripts": {
            "post-install-cmd": [
                "Contao\\ManagerBundle\\Composer\\ScriptHandler::initializeApplication"
            ],
            "post-update-cmd": [
                "Contao\\ManagerBundle\\Composer\\ScriptHandler::initializeApplication"
            ]
        }
    }
    Im Backend wird kein Fehler angezeigt.

    Das Update lief ziemlich holprig. Daher vermute ich, dass ich während des Updates etwas falsch gemacht habe.
    Ich bin ratlos, wo ich jetzt ansetzen soll und freue mich über Tipps.

  2. #2
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.719
    User beschenken
    Wunschliste

    Standard

    Hallo Diana,

    kannst Du bitte nochmal prüfen, ob nicht doch PHP 8 bei der Installation läuft?

    Eher ein Formfehler: wenn bundle_all eingebunden ist, ist natürlich der core mit bei ;-)

    Besser ist es, nur die benötigten Pakete zu installieren - siehe https://metamodels.readthedocs.io/de...eparate-module

    Debug-Mode ist nur für Dich sichtbar, wenn Du das im BE im Header eingeschaltet hast...

  3. #3
    Contao-Nutzer Avatar von Diana
    Registriert seit
    30.10.2009.
    Ort
    Karlsruhe
    Beiträge
    52
    Partner-ID
    11708

    Standard

    Hi Zonky!

    Eher ein Formfehler: wenn bundle_all eingebunden ist, ist natürlich der core mit bei ;-)
    Stimmt, steht ja sogar in der Übersicht vom Contao-Manager. Ist mir nie aufgefallen

    Besser ist es, nur die benötigten Pakete zu installieren - siehe https://metamodels.readthedocs.io/de...eparate-module
    Ah, danke für den Hinweis.
    Also könnte ich core belassen, bundle-all rauswerfen und stattdessen die Einzelpakete installieren?
    Das wären:
    tl_metamodel_attribute
    alias
    longtext
    numeric
    select
    text
    timestamp
    --> Die Attribut-Pakte sind selbsterklärend

    tl_metamodel_filtersetting:
    customsql
    simplelookup
    --> Aber welche Filter-Pakete brauch ich dann? filter_select?


    kannst Du bitte nochmal prüfen, ob nicht doch PHP 8 bei der Installation läuft?
    Wenn ich auf PHP 8.0 umstelle, bekomme ich im Backend diese Fehler:

    Code:
    Warning: Undefined array key "tl_class"
    ---
    InputScreenInformationBuilder->MetaModels\ViewCombination\{closure}(array('id' => '7', 'pid' => '2', 'sorting' => '2432', 'tstamp' => '1532938334', 'published' => '1', 'dcatype' => 'attribute', 'attr_id' => '5', 'tl_class' => '', 'legendhide' => '', 'legendtitle' => '', 'mandatory' => '', 'alwaysSave' => '', 'filterable' => '', 'searchable' => '', 'chosen' => '', 'allowHtml' => '', 'preserveTags' => '', 'decodeEntities' => '', 'rte' => '', 'rows' => '0', 'cols' => '0', 'trailingSlash' => '2', 'spaceToUnderscore' => '', 'includeBlankOption' => '', 'submitOnChange' => '', 'readonly' => '', 'select_as_radio' => '0', 'select_minLevel' => '0', 'select_maxLevel' => '0', 'tag_as_wizard' => '0', 'tag_minLevel' => '0', 'tag_maxLevel' => '0', 'rgxp' => ''))
    Code:
    Internal Server Error
    ---
    Compile Error: Declaration of MetaModels\CoreBundle\EventListener\DcGeneral\EnvironmentPopulator\AssetPopulator::populate() must be compatible with MetaModels\CoreBundle\EventListener\DcGeneral\EnvironmentPopulator\MetaModelPopulatorTrait::populate(ContaoCommunityAlliance\DcGeneral\EnvironmentInterface $environment)

  4. #4
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.719
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Diana Beitrag anzeigen
    Also könnte ich core belassen, bundle-all rauswerfen und stattdessen die Einzelpakete installieren?
    Korrekt! So wäre es schön...

    Zur nächsten Frage:

    https://metamodels.readthedocs.io/de...eparate-module
    -- Attribute
    SELECT type FROM `tl_metamodel_attribute` GROUP BY type ORDER BY type
    -- Attribut "levensthein" wurde umbenannt nach "levenshtein"

    -- Filter
    SELECT type FROM `tl_metamodel_filtersetting` GROUP BY type ORDER BY type
    -- Filterregeln "conditionand, conditionor, customsql, idlist, simplelookup" sind im MM-Core enthalten
    -- Filterregel "checkbox_published" im Attribut Checkbox
    Bitte die Kommentare ansehen...


    Zur Fehlermeldung:

    MM 2.2 läuft nur mit Contao 4.9 und PHP 7.4 - siehe https://metamodels.readthedocs.io/de...fur-contao-4-9

    Wenn PHP 8.1 brauchst Du Contao 4.13 und MM 2.3 - siehe https://metamodels.readthedocs.io/de...4-13-und-php-8

  5. #5
    Contao-Nutzer Avatar von Diana
    Registriert seit
    30.10.2009.
    Ort
    Karlsruhe
    Beiträge
    52
    Partner-ID
    11708

    Standard

    Okidoki. Wer lesen kann ist klar im Vorteil.
    Ich hab jetzt alles schön aufgeräumt und wieder PHP 7.4 aktiviert.
    Die composer.json sieht jetzt so aus:

    Code:
    {
        "type": "project",
        "require": {
            "codefog/contao-news_categories": "^3.2",
            "contao/calendar-bundle": "4.9.*",
            "contao/comments-bundle": "4.9.*",
            "contao/conflicts": "*@dev",
            "contao/faq-bundle": "4.9.*",
            "contao/listing-bundle": "4.9.*",
            "contao/manager-bundle": "4.9.*",
            "contao/news-bundle": "4.9.*",
            "contao/newsletter-bundle": "4.9.*",
            "fritzmg/contao-sharebuttons": "^2.1",
            "jrgregory/m17-sticky-backend-footer": "^2.0",
            "metamodels/attribute_alias": "^2.2",
            "metamodels/attribute_longtext": "^2.2",
            "metamodels/attribute_numeric": "^2.2",
            "metamodels/attribute_select": "^2.2",
            "metamodels/attribute_text": "^2.2",
            "metamodels/attribute_timestamp": "^2.2",
            "metamodels/core": "^2.2",
            "netzhirsch/cookie-opt-in-bundle": "^2.2",
            "terminal42/notification_center": "^1.5"
        },
        "extra": {
            "contao-component-dir": "assets"
        },
        "scripts": {
            "post-install-cmd": [
                "Contao\\ManagerBundle\\Composer\\ScriptHandler::initializeApplication"
            ],
            "post-update-cmd": [
                "Contao\\ManagerBundle\\Composer\\ScriptHandler::initializeApplication"
            ]
        }
    }
    Fehler erhalte ich leider weiterhin.

    Im Contao-Manager steht bei Maintenance > Database Migrations: "Database problem found".
    Wenn ich das Install Tool starte, kommt dieser Fehler:
    ###
    Unknown database type enum requested, Doctrine\DBAL\Platforms\MySQL57Platform may not support it.
    ###
    Ich hab mir die Datenbank-Tabellen angesehen, da wird nirgends enum verwendet.

    Im Frontend kommt dieser Fehler:
    ###
    Argument 7 passed to MetaModels\ItemList::__construct() must be of the type string, null given, called in /html/contao/vendor/metamodels/core/src/CoreBundle/Controller/ListControllerTrait.php on line 141
    ###
    Das klingt für mich ähnlich wie das Problem oben.


    Im Backend kommen keine Fehler.

    Lösungsansatz?
    Ich hab auf meiner Suche im Netz noch diesen Lösungsansatz gefunden:
    Code:
    DB::connection()->getDoctrineSchemaManager()->getDatabasePlatform()->registerDoctrineTypeMapping('enum', 'string');
    Quelle: https://github.com/doctrine/dbal/issues/3161

    Ich bin aber zu wenig Entwickler, um bewerten zu können, ob das hier hilft und ich wüsste auch nicht wo ich den Code-Schnipsel einbauen sollte.

  6. #6
    Contao-Nutzer Avatar von Diana
    Registriert seit
    30.10.2009.
    Ort
    Karlsruhe
    Beiträge
    52
    Partner-ID
    11708

    Standard

    Dieser Forumseintrag brachte mir gerade den entscheidenden Durchbruch, deshalb will ich ihn euch nicht vorenthalten:
    https://community.contao.org/de/show...requested-quot

    So hab ich es gemacht:
    • config/config.yml um Zeile 5+6 ergänzt:
      Code:
      doctrine:
        dbal:
          connections:
            default:
              mapping_types:
                enum: string        
              options:
                1002: "SET SESSION sql_mode=(SELECT CONCAT(@@sql_mode, ',TRADITIONAL'))"
    • Im Contao-Manager unter Maintenance wurde daraufhin statt Database problem found 2 pending database migrations angezeigt
    • dann hab ich "Check database" aufgerufen und alle Vorschläge ausgeführt
    • Cache geleert
    • Zack. Alles geht.

    Halleluja.
    Geändert von Diana (05.05.2023 um 16:43 Uhr)

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •