我知道这似乎是一种奇怪的行为,避免了学说中的异常,但我需要这样做,因为我在一个旧项目中工作,过去有人执行了一些迁移,然后他决定删除它,所以现在复制很复杂本地生产环境没有崩溃,这就是我需要执行一些查询的原因(删除外键并添加againg以确保我在本地和生产中具有相同的环境。
有可能吗?当然我尝试使用try / catch但是没有工作,我阅读了doctrine文档,但没有相关的信息,所以似乎不可能,但也许有办法做到这一点
答案 0 :(得分:2)
我无法捕获异常,所以要解决我决定创建两个不同的迁移文件,第一个用于开发,第二个用于生产。要仅在正确的环境中执行,我调用skipIf,如果我不在生产中,我只执行此查询。
$this->skipIf('prod' === getenv('SYMFONY_ENV'), "This migrations is only executed in develop and test enviroments");
我知道这不是最好的方法,但对于这个问题来说是好方法。