尝试进行迁移以删除组合的唯一密钥失败且没有错误。
我已经创建了一个迁移php artisan make:migration
并编辑了代码。所以我有这个
public function up()
{
Schema::table('ques_trilha_itens', function (Blueprint $table) {
$table->dropUnique('trilha_itens_trilha_id_questao_id_unique');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('ques_trilha_itens', function (Blueprint $table) {
$table->unique(['trilha_id', 'questao_id']);
});
}
该字符串'trilha_itens_trilha_id_questao_id_unique'
是在 MySQL 中显示为组合唯一键的字符串。所以我认为要使用该字符串来删除两个组合键。
但是在运行时php artisan migrate
,什么都没有发生,没有错误消息,并且没有执行迁移。
我尝试将字符串替换为dropUnique
表的名称作为第一个术语 ( 'ques_trilha_itens_trilha_id_questao_id_unique'
) 而什么都没有。
我错过了什么吗?
更新:
MySQL 命令SHOW CREATE TABLE ques_trilha_itens
给出:
CREATE TABLE `ques_trilha_itens` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`trilha_id` int(10) unsigned NOT NULL,
`questao_id` int(10) unsigned NOT NULL,
`primeiro_item` tinyint(1) NOT NULL,
`item_principal_id` int(10) unsigned DEFAULT NULL,
`created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`chave` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `trilha_itens_trilha_id_questao_id_unique` (`trilha_id`,`questao_id`),
UNIQUE KEY `ques_trilha_itens_chave_unique` (`chave`),
KEY `trilha_itens_questao_id_foreign` (`questao_id`),
KEY `ques_trilha_itens_item_principal_id_foreign` (`item_principal_id`),
CONSTRAINT `ques_trilha_itens_item_principal_id_foreign` FOREIGN KEY (`item_principal_id`) REFERENCES `ques_trilha_itens` (`id`) ON DELETE SET NULL,
CONSTRAINT `trilha_itens_trilha_id_foreign` FOREIGN KEY (`trilha_id`) REFERENCES `ques_trilhas` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=43 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci