如果列存在,则在Doctrine迁移中跳过语句?

时间:2018-04-18 10:33:13

标签: php doctrine

我正在使用Doctrine迁移。我刚刚了解了skipIf()类中的AbstractMigration方法,如果列存在,我想用它跳过一些代码。

有人可以举例说明我该怎么做吗?

1 个答案:

答案 0 :(得分:3)

如果您的方法中有典型的Schema类,则可以执行以下操作:

public function up(Schema $schema)
{
    if (!$schema->getTable('your_table')->hasColumn('your_column')) {
        // do your code
    }
}

或者,如果您想使用skipIf,您应该可以执行以下操作,但我还没有测试过。

public function up(Schema $schema)
{
    $this->skipIf(
        $schema->getTable('your_table')->hasColumn('your_column'), 
        'Skipping because `your_column` exists'
    );
}