不使用指定配置的Doctrine迁移

 何俊雨_127 发布于 2023-01-29 21:43

我在ZF2项目中使用了Doctrine和Migrations几个星期没有问题.我一直在通过指定自己的配置文件来执行迁移:

vendor/bin/doctrine-module migrations:diff --configuration=/path/to/migrations-config.xml

我最近通过composer 将Codeception引入我的项目中,当我最近执行新的迁移(使用相同的上述命令)时,我收到以下错误:

[InvalidArgumentException]
Migrations directory data/DoctrineORMModule/Migrations does not exist

这不是我在配置文件中指定的目录.起初我以为Doctrine Migrations完全忽略了我的--configuration参数.当我跟踪它时,我看到Doctrine Migrations没有使用我的--configuration参数,因为它已经加载了一个配置文件.

有谁知道这个配置文件可能从哪里拉?我可以通过在AbstractCommand getMigrationConfiguration()中注释掉条件来暂时解决这个问题,但从长远来看,我宁愿不必依赖于此.我也会尝试删除代码,看看是否有任何影响.任何帮助表示赞赏.

1 个回答
  • 事实证明,我能够将Doctrine迁移配置移动到我的ZF2模块配置中.在我的module.config.php中,我有以下指定(Api是模块名称):

    'doctrine' => array(
            'driver' => array(
                'application_entities' => array(
                    'class' =>'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
                    'cache' => 'array',
                    'paths' => array(__DIR__ . '/../src/Api/Entity')
                ),
                'orm_default' => array(
                    'drivers' => array(
                        'Api\Entity' => 'application_entities'
                    )
                )
            ),
            'migrations_configuration' => array(
                'orm_default' => array(
                    'directory' => 'data/migrations',
                    'namespace' => 'My\Namespace\Migrations',
                    'table' => 'migrations',
                ),  
            ),
        ),
    

    这使我可以运行Doctrine迁移命令,而无需指定配置文件,例如:

    vendor/bin/doctrine-module migrations:diff
    

    2023-01-29 21:48 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有