我们已经接管了一个旧的(3 年)Symfony 3.3 项目,使用教义迁移 1.0 包来处理迁移。不幸的是,迁移脚本已经被破坏了一段时间,没有人注意到,所以你不能在不检查现有数据库的情况下从源代码重新构建。
我想解决这种情况,以便运行composer doctrine:migrate
基本上只是运行一个虚拟脚本,该脚本创建当前模式的样子。我将如何做到这一点,以便在现有模式上运行它时不会中断?
我想我会按照这些思路做一些事情:
检查一个干净的项目(带有错误的旧迁移)
获取生产数据库转储
将生产数据库模式转储到 SQL 文件
删除旧的迁移
创建一个版本号与错误迁移中的“当前”/最高版本号相同的迁移文件
运行迁移
作为最后一步,通过删除数据库、导入生产数据库转储然后运行migrate
来验证这是否确实有效,以验证没有任何中断。我只是不确定如何在 Doctrine 包的上下文中执行此操作(我是 PHP 新手),即使在查阅了文档之后(似乎并未涵盖这种情况)。
湖上湖