【问题标题】:How to save returned values of sql statements in Yii MigrationsYii Migrations中如何保存sql语句的返回值
【发布时间】:2013-09-06 08:15:29
【问题描述】:

我正在尝试构建一个迁移,其中一个 SQL 语句的输出需要被解析,然后通过管道传输到以下迁移语句。

CDbMigration::execute() 没有返回选项,有什么想法可以做到这一点吗? See Class Reference

虽然我可以通过 ActiveRecord 运行查询并解析返回的输出,但不建议在 CDbMigration 中使用活动记录,任何更好的解决方案都会有所帮助

【问题讨论】:

    标签: php sql activerecord yii


    【解决方案1】:

    据我所知,execute 命令永远不会返回任何结果,因为它旨在执行执行,而不是查询 - 即它在表中设置一些数据,而不是获取它。

    您能否根据需要在 up 或 down 方法中尝试此操作:

    $results = $this->getDBConnection()->createCommand($sql)->query();
    

    虽然我会评论说,如果您需要这样做,迁移可能不是完成这项工作的最佳工具。

    【讨论】:

    • 谢谢,我完全忘记了在不使用 ActiveRecords 的情况下执行直接 sql 语句 :),是的,Yii 迁移并不是这类事情的最佳工具。但这更容易,因为我在不同的环境中设置了多台服务器并使用 git 进行部署。设置 cron 并通过文本文件推送它可能需要我一天的时间 :(
    • 那我应该用什么工具呢?我需要将数据从“一对多”关系迁移到“多对多”关系,将一列转换为单独的表
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-26
    • 2013-08-03
    相关资源
    最近更新 更多