从Doctrine Migration获取SQL

时间:2010-01-22 23:07:03

标签: sql migration doctrine

我一直在研究一种获取由生成的Migration文件构建的SQL语句的方法。这些扩展了Doctrine_Migration_Base。基本上我想将SQL保存为更改脚本。

执行路径将我引导到Doctrine_Export,它具有构建SQL语句并执行它们的方法。我发现没有办法要求他们。 Doctrine_Export中的导出方法仅在Doctrine_Record模型上运行,而不是在迁移脚本上运行。

从命令行'./doctrine migrate version#'开始路径:

  • Doctrine_Cli ::运行(CMD)
  • Doctrine_Task_Migrate :: setArguments(参数)
  • Doctrine_Task_Migrate ::执行()
  • Doctrine_Migration ::迁移(至)
  • Doctrine_Migration_Process :: Doctrine_Export ::各种 使用sql创建,删除,更改方法 等同物。

以前有人解决过这个问题吗?我真的不想改变Doctrine基础文件。非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

您是否可以创建一个开发服务器,然后对其进行迁移,随时存储SQL跟踪?您不必保留结果,但是您将获得每个命令的列表。

答案 1 :(得分:0)

考虑到Rob Farley的建议,我修改了:

  • Doctrine_Core ::迁移
  • Doctrine_Task_Migrate ::执行

调用execute方法时,会检查可选参数'dryRun'。如果是真的 然后创建一个'Doctrine_Connection_Profiler'实例。然后传递'dryRun'值 'Doctrine_Core :: migrate'方法。 'dryRun'值为true允许更改在执行SQL语句时回滚。该方法返回时,将分析探查器和非空SQL语句 不包含'migration_version'将被保存并显示给终端。