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

l3zydbqr  于 2022-11-09  发布在  其他
关注(0)|答案(2)|浏览(160)

有没有什么工具或者编程技术可以将Yii 2迁移的输出捕获到up/down SQL脚本中,也就是说,在最终运行php yii migrate之前,打印出迁移对应的原始SQL?
例如in Laravel,您可以添加一个标志--pretend来将查询输出到终端,就像php artisan migrate --pretend一样。Yii Framework中有类似的功能吗?

eivgtgni

eivgtgni1#

正如@Bizley在评论这个问题时所说,在这个问题得到回答之前,Yii 2没有一个原生的方法来做这件事。
对于我的案例I just tracked my MySQL DB log,选择了我要查找的查询,因为我必须通过迁移将当前数据库设置为新数据库。

pdtvr36n

pdtvr36n2#

例如,只需安装Bizley's migration package并尝试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.

$

相关问题