You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Symfony中doctrine:migrations:execute命令无法找到自定义文件夹内的Doctrine迁移文件

问题分析与解决方法

这并不是doctrine:migrations:execute命令不支持自定义迁移路径配置,而是你使用命令的方式需要适配自定义命名空间的设置。

核心原因

当你配置了自定义的迁移命名空间App\Migrations后,你的迁移类的完整类名是App\Migrations\Version20220329211652(而非仅版本号对应的类名)。而execute命令默认会在默认迁移命名空间(通常是Doctrine\Migrations)中查找类,所以仅输入版本号20220329211652时,它找不到你自定义路径下的迁移类。

而doctrine:migrations:migrate和doctrine:migrations:list命令是直接扫描你配置的migrations_paths目录下的文件,所以不受这个限制,能正常工作。

两种解决办法

  1. 使用完整类名执行命令
    直接指定迁移类的完整命名空间+类名:

    doctrine:migrations:execute App\Migrations\Version20220329211652
    

    (注意类名是Version+版本号,比如你的迁移文件如果是Version20220329211652.php,类名就是这个)

  2. 配置默认迁移命名空间
    在doctrine_migrations配置中添加default_migration_namespace,指定为你的自定义命名空间,这样execute命令会默认去这个命名空间查找类,你就可以继续用版本号执行命令了:

    doctrine_migrations:
        migrations_paths:
            'App\Migrations': "%kernel.project_dir%/src/Migrations"
        default_migration_namespace: 'App\Migrations'
    

    配置完成后,执行doctrine:migrations:execute 20220329211652就能正常找到迁移类了。

内容的提问来源于stack exchange,提问作者user18399928

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 16:57:40