获取下一个学说迁移的名称

时间:2019-07-15 12:09:44

标签: doctrine-orm doctrine

如何获取下一个要执行的迁移的名称/版本?与migrations:latest类似,但更像migrations:next。我需要将此作为另一个命令的输入,因此它需要是可解析的输出(不能只使用migrations:status)。

1 个答案:

答案 0 :(得分:1)

您可以使用Doctrine迁移包中的Configuration对象。甚至(有些)记录为custom configuration

这是一个对我有用的最小代码示例:

public function migrationVersionAction(EntityManagerInterface $em, ParameterBagInterface $parameters) {
    $connection = $em->getConnection();
    $configuration = new \Doctrine\Migrations\Configuration\Configuration($connection);
    $configuration->setMigrationsNamespace($parameters->get('doctrine_migrations.namespace'));
    $configuration->setMigrationsDirectory($parameters->get('doctrine_migrations.dir_name'));
    $configuration->setMigrationsTableName($parameters->get('doctrine_migrations.table_name'));

    return new JsonResponse([
       'prev' => $configuration->resolveVersionAlias('prev'),
       'current' => $configuration->resolveVersionAlias('current'),
       'next' => $configuration->resolveVersionAlias('next'),
       'latest' => $configuration->resolveVersionAlias('latest')
    ]);
}

您可能还想设置其余参数,尤其是当它们与默认值不同时。为此,除了上面的链接之外,configuration documentation可能会有所帮助。