SQLSTATE[HY000]: General error: 1005 无法创建表 - Laravel 4

9 浏览
0 Comments

SQLSTATE[HY000]: General error: 1005 无法创建表 - Laravel 4

当我运行php artisan migrate时,出现了这个错误。我的迁移文件有问题吗?或者可能是我的模型代码有问题?但是即使模型有问题,迁移应该也能正常运行吧?

错误信息如下:

[Exception]

SQLSTATE[HY000]: General error: 1005 Can't create table 'festival_aid.#sql-

16643_2033' (errno: 150) (SQL: alter table `gigs` add constraint gigs_band_

id_foreign foreign key (`band_id`) references `bands` (`band_id`) on delete

cascade) (Bindings: array (

))

[PDOException]

SQLSTATE[HY000]: General error: 1005 Can't create table 'festival_aid.#sql-

16643_2033' (errno: 150)

gigs migration

public function up()

{

Schema::create('gigs', function($table)

{

$table->increments('gig_id');

$table->dateTime('gig_startdate');

$table->integer('band_id')->unsigned();

$table->integer('stage_id')->unsigned();

$table->foreign('band_id')

->references('band_id')->on('bands')

->onDelete('cascade');

$table->foreign('stage_id')

->references('stage_id')->on('stages')

->onDelete('cascade');

});

}

public function down()

{

Schema::table('gigs', function($table)

{

Schema::drop('gigs');

$table->dropForeign('gigs_band_id_foreign');

$table->dropForeign('gigs_stage_id_foreign');

});

}

bands migration

public function up()

{

Schema::create('bands', function($table)

{

$table->increments('band_id');

$table->string('band_name');

$table->text('band_members');

$table->string('band_genre');

$table->dateTime('band_startdate');

});

}

public function down()

{

Schema::table('bands', function(Blueprint $table)

{

Schema::drop('bands');

});

}

Model Band

class Band extends Eloquent {

protected $primaryKey = 'band_id';

public function gig()

{

return $this->hasOne('Gig', 'band_id', 'band_id');

}

}

Model Gig

class Gig extends Eloquent {

protected $primaryKey = 'gig_id';

public function gig()

{

return $this->belongsTo('Band', 'band_id', 'band_id');

}

public function stage()

{

return $this->belongsTo('Stage', 'stage_id', 'stage_id');

}

}

0