Symfony Make:Migration : Der Metadatenspeicher ist nicht aktuell, bitte führen Sie den Befehl sync-metadata-storage aus, um dieses Problem zu beheben

Lesezeit: 3 Minuten

Benutzer-Avatar
Aziz Bouaouina

Ich bekomme jedes Mal dieses Problem, wenn ich versuche, über die Befehlszeile zu migrieren: php bin/console make:migration
oder auch doctrine:migration status
wenn ich das versuche doctrine:migration:sync-metadata-storage Wie sie mir sagen, bekomme ich immer noch die gleiche Fehlermeldung.

Ich lerne gerade Symfony und habe eine Anleitung befolgt, aber ich bekomme dieses Problem irgendwie Symfony 4.4 php 7.2

Benutzer-Avatar
Meis van Wel

Versuchen Sie, die DATABASE_URL in .env von zu ändern

DATABASE_URL=mysql://root:@127.0.0.1:3306/testtest?serverVersion=10.4.11

zu

DATABASE_URL=mysql://root:@127.0.0.1:3306/testtest?serverVersion=mariadb-10.4.11

Die Symfony-Dokumentation schlägt vor, die Versionsnummer, aber nicht den Datenbanktyp anzugeben

“Es gibt weitere Optionen in config/packages/doctrine.yaml, die Sie konfigurieren können, einschließlich Ihrer server_version (z. B. 5.7, wenn Sie MySQL 5.7 verwenden), die sich auf die Funktionsweise von Doctrine auswirken können.”
https://symfony.com/doc/current/doctrine.html

Ursprüngliche Antwort: https://github.com/doctrine/DoctrineMigrationsBundle/issues/337#issuecomment-645390496

Für MariaDB benötigen Sie die vollständige Semver-kompatible Version: Major.Minor.Patch. Durch Ausführen mysql --versionerhalten Sie die richtige Version, die Sie gerade ausführen.

  • Welchen Servertyp verwendest du denn?

    – Meis van Wel

    23. Juni 2020 um 18:44 Uhr

  • Nun, ich benutze mysql

    – Vincent PHILIPPE

    23. Juni 2020 um 18:46 Uhr

  • Wenn Sie XAMPP verwenden, können Sie zu folgendem gehen: localhost/phpmyadmin/index.php um Ihre Serverversion und Ihren Typ zu überprüfen.

    – Meis van Wel

    24. Juni 2020 um 8:05 Uhr

  • In meinem Fall habe ich Docker verwendet, also musste ich dasselbe unter tun environment in docker-compose.yml

    – Waqleh

    29. August 2020 um 17:25 Uhr

  • Führen Sie einfach “SELECT VERSION()” auf Ihrem mariaDB-Server aus und verwenden Sie diesen String als Version in Ihrer Konfiguration. In meinem Fall ?serverVersion=10.3.25-MariaDB-0+deb10u1 und es funktioniert.

    – Papa

    6. November 2020 um 4:40 Uhr

Für mich war es ausreichend, der Serverversion mariadb-xxx voranzustellen. Das Problem wurde behoben.

„Wenn Sie eine MariaDB-Datenbank betreiben, sollten Sie der serverVersion mariadb- voranstellen (z. B. mariadb-10.2.12).“

https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url

Benutzer-Avatar
Mohammed Ali

Es funktioniert, wenn ich die ändere DATABASE_URL in .env

Aus:

DATABASE_URL=mysql://root:@127.0.0.1:3306/testtest?serverVersion=10.4.11

Zu:

DATABASE_URL=mysql://root:@127.0.0.1:3306/testtest?serverVersion=mariadb-10.4.11

In meinem Fall funktioniert es, wenn ich : ?serverVersion=5.2 aus der URL entferne.

Benutzer-Avatar
Mauswurzel

die musst du ändern serverVersion=5.7 in .env zu serverVersion=mariadb-10.4.8

Benutzer-Avatar
elkuku

Ich bin nach dem Upgrade auf Doctrine-Migrationen 3 auf das gleiche Problem gestoßen

Scheint, dass sich eine Menge Dinge geändert haben, einschließlich des Tabellennamens, in dem Migrationsversionen gespeichert sind 🙁

Also habe ich aktualisiert config/packages/doctrine_migrations.yamleine neue (leere) Migration erstellt, den Cache geleert (nur für den Fall) und alles lief gut 🙂

doctrine_migrations:
migrations_paths:
    # namespace is arbitrary but should be different from App\Migrations
    # as migrations classes should NOT be autoloaded
    'DoctrineMigrations': '%kernel.project_dir%/src/Migrations'
storage:
    # Default (SQL table) metadata storage configuration
    table_storage:
        table_name: 'migration_versions'
        version_column_name: 'version'
        version_column_length: 1024
        executed_at_column_name: 'executed_at'
        execution_time_column_name: 'execution_time'

Übrigens. Dokumente sind aktuell 😉 https://symfony.com/doc/master/bundles/DoctrineMigrationsBundle/index.html

Symfony 5.1

wenn du hast:

Ungültige Plattformversion „maridb-10.4.13“ angegeben. Die Plattformversion muss im folgenden Format angegeben werden: “..“.

mach einfach einen von

config/doctrine.yaml

doctrine:
  dbal:
    server_version: 'mariadb-10.4.13'

oder in der Konfigurationsdatei .env

DATABASE_URL=mysql://databaseUsername:UserPassword@localhost:3306/databaseName?serverVersion=mariadb-10.4.13

  • Ich kann diese Antwort nicht genug positiv bewerten. War mir wirklich nicht bewusst, dass Sie server_version: ‘mariadb-…’ angeben müssen.

    – Mechanik

    6. November 2021 um 7:45 Uhr

1324250cookie-checkSymfony Make:Migration : Der Metadatenspeicher ist nicht aktuell, bitte führen Sie den Befehl sync-metadata-storage aus, um dieses Problem zu beheben

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy