Symfony 5 doctrine_migrations 脚本启动时出错

Symfony 5 doctrine_migrations error on script boot

据我所知,我看不到任何其他问题,所以这里是:

我一直是 运行 最新的 Symfony,用于辅助项目,并且在我编写应用程序时遇到了这个错误。我现在没有做任何修复它的事情,甚至没有重新安装 symfony,我什至不知道问题是什么。我收到错误:

The parameter "doctrine_migrations.dir_name" has a dependency on a non-existent parameter "kernel.root_dir". Did you mean one of these: "kernel.project_dir", "kernel.cache_dir", "kernel.logs_dir"?

您似乎在 config/packages/doctrine_migrations.yaml 配置文件中使用了未定义的 kernel.root_dir 变量。

您应该将其替换为 kernel.project_dir:

# config/packages/doctrine_migrations.yaml
doctrine_migrations:
    dir_name: '%kernel.project_dir%/src/Migrations'

参见:https://symfony.com/doc/master/bundles/DoctrineMigrationsBundle/index.html#configuration

此时我假设这是一个 symfony 错误,所以我将关闭这个问题。感谢大家的帮助!

尝试

composer remove orm
composer require symfony/orm-pack

只是为了记录根本原因。

Symfony 5 删除了 kernel.root_dir 参数。 Doctrine Migrations Bundle 使用它作为 dir_name.

的默认值

已经讨论过了。参见 https://github.com/doctrine/DoctrineMigrationsBundle/issues/305 and https://github.com/doctrine/DoctrineMigrationsBundle/pull/295

解决方案:现在(Symfony 5 和 Migrations bundle 2.1.x),你不应该删除 doctrine_migrations.yaml。将它留在那里并带有不会引发错误的 dir_name