我们目前使用 Phing 进行部署,并使用 dbdeploy 应用任何数据库更改。但是,有时我们希望在部署期间进行一些更改,这些更改可以更好地由我们的对象模型处理,因此我们编写了一次使用 PHP 脚本,在部署后手动运行。
是否有任何类似于 dbdeploy 的现有解决方案可以处理正在运行的脚本,更重要的是,跟踪哪些已经运行,以便每个脚本只运行一次?
我们目前使用 Phing 进行部署,并使用 dbdeploy 应用任何数据库更改。但是,有时我们希望在部署期间进行一些更改,这些更改可以更好地由我们的对象模型处理,因此我们编写了一次使用 PHP 脚本,在部署后手动运行。
是否有任何类似于 dbdeploy 的现有解决方案可以处理正在运行的脚本,更重要的是,跟踪哪些已经运行,以便每个脚本只运行一次?
我认为这对其他人也可能有用。如果您想不出其他解决方案,我认为最好的解决方案是查看实现DBDeploy 任务的文件,将其复制到自定义任务中,重用数据库检查功能,但不生成 SQL 脚本,而是执行脚本你需要。
如果你对它感到满意,你也可以考虑将它贡献给 Phing。我相信他们会很乐意将其包含在内(请参阅Phing-How To Contribute)。
怎么样:
听起来像一个黑客,但这是最简单的方式。
我能想象的最简单的可能是使用Phing ExecTask,另请参阅Phing User Guide (stable)。