假设我有一个到Doctrine迁移类的路径,我如何在Doctrine2中以编程方式执行迁移?
我认为应该有一种干净的方法来通过API执行迁移,因为它可以通过Doctrine的早期版本完成,如下所述:http://docs.doctrine-project.org/projects/doctrine1/en/latest/en/manual/migrations.html
假设我有一个到Doctrine迁移类的路径,我如何在Doctrine2中以编程方式执行迁移?
我认为应该有一种干净的方法来通过API执行迁移,因为它可以通过Doctrine的早期版本完成,如下所述:http://docs.doctrine-project.org/projects/doctrine1/en/latest/en/manual/migrations.html
3条答案
按热度按时间velaa5lx1#
由于我没有看到任何答案,我将尝试提供我的解决方案,用于在原则中以编程方式(使用代码)执行迁移。
希望它能帮助另一个开发人员快速启动他的原型。我试着详细说明代码,这样人们就不会浪费时间去弄清楚每一个依赖项。
wsewodh22#
如果您在Symfony框架中使用Doctrine,并在寻找从命令外部运行迁移的方法时发现了这个问题,请记住,您可以通过自动装配访问已经配置的DependencyFactory。
和往常一样自动接线:
好的。
也就是说,在正常操作期间,您很可能会使用没有管理权限的受限用户连接数据库,遵循最低权限原则。如果您这样做,从应用运行迁移将失败。如果您不这样做,请考虑这样做。
我发现上面的代码对于在健康检查端点响应中包含迁移信息非常有用,但不一定要运行迁移。
bq3bfh9z3#
假设您使用的是Symfony的DoctrineMigrationsBundle
要迁移到最新的可用版本,请使用用途:
doctrine:migrations:migrate
命令。以下是更多可用命令。