跳过例外原则迁移

Skip exceptions doctrine migrations

我知道在原则上避免异常似乎是一种奇怪的行为,但我需要这样做,因为我在一个旧项目中工作,过去有人执行了一些迁移,然后他决定删除它,所以现在很复杂在本地复制生产环境而不会崩溃,这就是我需要执行一些查询的原因(删除外键并添加 againg 以确保我在本地拥有与生产环境相同的环境。

可以吗?当然,我尝试使用 try/catch 但没有用,我阅读了学说文档,但没有相关信息,所以这似乎是不可能的,但也许有一种方法可以做到这一点

我无法捕获异常,因此为了解决这个问题,我决定创建两个不同的迁移文件,第一个用于开发,第二个用于生产。为了仅在正确的环境中执行,我调用了 skipIf 并且仅在不在生产环境中时才执行此查询。

$this->skipIf('prod' === getenv('SYMFONY_ENV'), "This migrations is only executed in develop and test enviroments");

我知道这不是最好的方法,但却是解决这个问题的好方法。