Posts Tagged with foreign key

Displaying 1-1 of 1 result.
Resolved: Yii2 Migration execution Exception: SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint
posted by admin on February 15, 2017
I run my Migration in Yii2 from console and get rsult with errors

> create table {{%user}} ... done (time: 0.126s)
> create index index_user_user_id on {{%user}} (user_id) ... done (time: 0.027s)
> create index index_user_role_id on {{%user}} (role_id) ... done (time: 0.026s)
> create index index_user_status_id on {{%user}} (status_id) ... done (time: 0.027s)
> create table {{%status}} ... done (time: 0.033s)
> create table {{%role}} ... done (time: 0.029s)
> add foreign key fk_user_user_id: {{%user}} (user_id) references {{%user}} (id) ...Exception: SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint
The SQL being executed was: ALTER TABLE `tbl_user` ADD CONSTRAINT `fk_user_user_id` FOREIGN KEY (`user_id`) REFERENCES `tbl_user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
... some notes here
#15 {main}
*** failed to apply m170213_124818_init (time: 0.313s)


0 from 2 migrations were applied.

Migration failed. The rest of the migrations are canceled.

My migration

class m170213_124818_init extends Migration
{
public function safeUp()
{
/** User Create*/
$this->createTable('{{%'.helpers\Table::$user.'}}', [
'id' => $this->primaryKey(10)->notNull()->unsigned(),
. . .
'user_id' => $this->integer(10),
. . .
], 'ENGINE=InnoDB');
# User Create

/** User Indexes*/
$this->createIndex("index_user_user_id", '{{%'.helpers\Table::$user.'}}', 'user_id');
# User Indexes

/** User FK */
$this->addForeignKey('fk_user_user_id','{{%'.helpers\Table::$user.'}}', 'user_id', '{{%'.helpers\Table::$user.'}}', 'id', 'CASCADE', 'CASCADE');
# User FK

}

public function safeDown()
{
// to do
}
}

How to resolve Exception

Exception: SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint
The SQL being executed was: ALTER TABLE `tbl_user` ADD CONSTRAINT `fk_user_user_id` FOREIGN KEY (`user_id`) REFERENCES `tbl_user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
Read more