如何在运行Yii2迁移之前输出SQL查询



是否有任何工具或编程技术可以捕获Yii2向上/向下SQL脚本迁移的输出,即在最终运行php yii migrate之前打印迁移对应的原始SQL?

例如,在Laravel中,您可以添加一个标志--pretend来将查询输出到终端,就像在php artisan migrate --pretend中一样。Yii框架中有类似的东西吗?

正如@Bizley在评论这个问题时所说,在这个问题得到回答之前,Yii2还没有一种原生的方法。

对于我的案例,我只是跟踪了我的MySQL数据库日志,并选择了我要查找的查询,因为我必须通过迁移将当前数据库设置为新数据库。

例如,只需安装Bizley的迁移包并尝试php yii migration/sql m220914_000000_create_clients_table,就可以提取相应的SQL语句,如:

$ php yii migration/sql m220914_000001_create_client_member_levels_table
Yii 2 Migration Generator Tool v4.4.0
> SQL statements of the m220914_000001_create_client_member_levels_table file (UP method):
CREATE TABLE `client_member_levels` (
`id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`level_identifier` varchar(255) NOT NULL DEFAULT 'employee',
`display_name` varchar(255) NOT NULL DEFAULT 'Employee',
`client_id` int(11) NOT NULL,
`created_at` datetime(0) NOT NULL DEFAULT NOW(),
`updated_at` datetime(0),
`deleted_at` datetime(0)
);
ALTER TABLE `client_member_levels` ADD INDEX `idx-client_member_levels-client_id` (`client_id`);
ALTER TABLE `client_member_levels` ADD CONSTRAINT `fk-client_member_levels-client_id` FOREIGN KEY (`client_id`) REFERENCES `clients` (`client_id`) ON DELETE CASCADE;
(!) Note that the above statements were not executed.
$

相关内容

  • 没有找到相关文章