Symfony 信条:迁移:迁移。元数据存储不是最新的,请运行sync metadata storage命令来解决此问题

Symfony 信条:迁移:迁移。元数据存储不是最新的,请运行sync metadata storage命令来解决此问题,symfony,doctrine,command-line-interface,production-environment,symfony5,Symfony,Doctrine,Command Line Interface,Production Environment,Symfony5,当我尝试迁移时,会出现以下异常:“元数据存储不是最新的,请运行sync metadata storage命令来解决此问题。”。这仅在尝试在生产环境上执行迁移时发生。当我使用原则:迁移:同步元存储命令时,它会引发相同的异常 原则_migrations.yaml: doctrine_migrations: # List of namespace/path pairs to search for migrations, at least one required migrations_

当我尝试迁移时,会出现以下异常:“元数据存储不是最新的,请运行sync metadata storage命令来解决此问题。”。这仅在尝试在生产环境上执行迁移时发生。当我使用
原则:迁移:同步元存储
命令时,它会引发相同的异常

原则_migrations.yaml:

doctrine_migrations:
    # List of namespace/path pairs to search for migrations, at least one required
    migrations_paths:
        'DoctrineMigrations': '%kernel.project_dir%/migrations'

    # List of additional migration classes to be loaded, optional
    migrations:

    # Entity manager to use for migrations. This overrides the "connection" setting.
    em: default

    storage:
        # Default (SQL table) metadata storage configuration
        table_storage:
            table_name: 'doctrine_migration_versions'
            version_column_name: 'version'
            version_column_length: 1024
            executed_at_column_name: 'executed_at'
            execution_time_column_name: 'execution_time'

    # Possible values: "BY_YEAR", "BY_YEAR_AND_MONTH", false
    organize_migrations: false

    # Path to your custom migrations template
    custom_template: ~

    # Run all migrations in a transaction.
    all_or_nothing: false

我正在使用Symfony 5和doctrinDemogrationsBundle版本3.0来执行迁移任务。

我通过在.env文件中添加maria db的版本使其正常工作

expl: serverVersion = 10.4.11-MariaDB



尝试删除.env文件上的服务器版本

您需要更新数据库: php bin/控制台原则:模式:更新——转储sql 然后 php bin/控制台原则:模式:更新——强制
问题解决后,您可以报告它

我使用DDEV并遇到相同的问题

.env文件中的此配置对我有效

DATABASE_URL=mysql://db:db@db:3306/db?serverVersion=10.4.11-MariaDB

我在使用MariaDB 10.3运行Symfony时遇到了完全相同的问题,我没有找到解决方法。然而,当我切换到PostgreSQL时,问题就消失了。当我显式地将mariadb的服务器版本添加到.env fileSymfony 5=>中时,这对我来说很有效,没有
serverVersion
参数,也可以正常工作。最好先刷新元数据:
php bin/console原则:缓存:清除元数据
,以确保使用的是当前注释元数据而不是缓存的元数据。