He estado investigando una forma de obtener las sentencias de SQL creadas por un archivo de migración generado. Estos extienden Doctrine_Migration_Base. Básicamente, me gustaría guardar el SQL como scripts de cambio.Obtener el SQL de una migración de Doctrine
La ruta de ejecución me lleva a Doctrine_Export, que tiene métodos que crean la instrucción SQL y los ejecuta. No he encontrado manera de preguntar por ellos. Los métodos de exportación encontrados en Doctrine_Export solo operan en modelos Doctrine_Record y no en scripts de Migración.
Desde la línea de comandos './doctrine migrar la versión #' el camino va:
- Doctrine_Cli :: run (CMD)
- Doctrine_Task_Migrate :: setArguments (args)
- Doctrine_Task_Migrate :: execute()
- Doctrine_Migration :: migran (a)
- Doctrine_Migration_Process :: Doctrine_Export :: varios crear, caída, alterar los métodos con SQL equi valents.
¿Alguien ha abordado esto antes? Realmente no me gustaría cambiar los archivos base de Doctrine. Cualquier ayuda es muy apreciada.
Interesante. Investigaré eso y te responderé. Siento que podría tener que modificar los archivos Doctrine base de todos modos ya que falta su implementación de CLI. Hay una opción dryRun disponible que Doctrine_Task_Migrate ni siquiera se molesta en buscar. Básicamente, las 2 opciones que voy son: Agregue la opción dryRun, ejecute una migración con dryRun y SQL Trace para capturar las declaraciones. O Junto con la opción dryRun, agregue otra opción para simplemente generar las declaraciones SQL , esto requeriría un archivo Doctrine_Migration_Process modificado, tal vez lo llame Doctrine_Migration_GetSQL. –
Sonidos válidos. Ciertamente SQL Trace es una buena forma de obtener los comandos. –