进行4次迁移,如下所示。这是用户表。
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
这就是艺术家的迁移。
Schema::create('artists', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('slug');
$table->string('image')->nullable();
$table->text('biography')->nullable();
$table->integer('week_hits');
$table->timestamp('week_date');
$table->timestamp('viewed_now');
$table->boolean('status')->default(1);
$table->integer('user_id')->unsigned();
$table->foreign('user_id')->references('id')->on('users');
$table->timestamps();
});
这是歌曲迁移。
Schema::create('songs', function (Blueprint $table) {
$table->increments('id');
$table->string('title');
$table->text('lyrics')->nullable();
$table->string('mp3');
$table->string('youtube_id')->nullable();
$table->timestamp('week_date');
$table->integer('week_hits')->nullable();
$table->timestamp('played_now')->nullable();
$table->timestamp('hits');
$table->integer('album_id')->unsigned()->nullable();
$table->foreign('album_id')->references('id')->on('albums');
$table->integer('artist_id')->unsigned();
$table->foreign('artist_id')->references('id')->on('artists');
$table->timestamps();
});
}
这就是专辑迁移。
Schema::create('albums', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('cover');
$table->integer('artist_id')->unsigned();
$table->foreign('artist_id')->references('id')->on('artists');
$table->boolean('status')->default(true);
$table->timestamp('viewed_now')->nullable();
$table->integer('week_hits')->nullable();
$table->timestamp('week_date');
$table->timestamps();
});
这是一个连接众多艺术家和歌曲的特色。
Schema::create('featuring', function (Blueprint $table) {
$table->integer('artist_id')->unsigned()->nullable();
$table->foreign('artist_id')->references('id')->on('artists');
$table->integer('song_id')->unsigned()->nullable();
$table->foreign('song_id')->references('id')->on('songs')->onDelete('cascade');
$table->timestamps();
});
当我尝试迁移这四个迁移时,会出现此错误。
SQLSTATE[HY000]: General error: 1005 Can't create table `laravel`.`#sql-f0_11e` (errno: 150 "Foreign key constraint is incorrectly formed") (SQL: alter table `songs` add const
raint `songs_album_id_foreign` foreign key (`album_id`) references `albums` (`id`))
您可能无法在创建过程中设置外键。您必须先创建表,然后再设置外键。您可以使用SHEMa::create创建表,然后使用SHEMa::表设置外键。示例:
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
});
Schema::table('posts', function (Blueprint $table) {
$table->integer('user_id')->unsigned();
$table->foreign('user_id')->references('id')->on('users');
});
您首先创建了table歌曲,然后创建了table相册。当您尝试在歌曲表中添加外键时,尚未创建专辑表,因此无法在未创建该表的情况下将外键添加到表中。
所以,您需要的是,在歌曲表之前创建相册表。
我有一个帖子表和一个到达表,它引用了flight no(文本字符串格式)作为外键。然而,当我运行Laravel迁移时,我得到了可怕的错误: SQLSTATE[HY000]:常规错误: 1005不能创建表.(errno: 150"外键约束格式不正确")(SQL:改变表添加约束外键()引用() [PDOExc0019]SQLSTATE[HY000]:常规错误: 1005不能创建表.(errno: 15
我有一个订单表和一个有一个引用作为一个外来的。然而,当我运行Laravel迁移我得到可怕的错误代码: SQLSTATE[HY000]:常规错误: 1005不能创建表.(errno: 150"外键约束格式不正确")(SQL:改变表add约束外键()引用() SQLSTATE[HY000]:常规错误: 1005不能创建表.(errno: 150"外键约束格式不正确") 这是我的表模式: 这是我的sch
我试图执行此迁移: 用户: 文章: 但当我迁移时,会出现以下错误: SQLSTATE[HY000]:一般错误: 1005不能创建表.(Errcode: 150"外键约束是inc orrecly形成的")(SQL:更改表添加约束外键()引用()在更新级联上删除级联) 我已经尝试将大整数和大增量重命名为简单整数和增量,但没有成功。
迁移我的数据库时,会出现此错误。下面是我的代码,后面是我在尝试运行迁移时遇到的错误。 密码 错误消息 [Illumb\Database\QueryException] SQLSTATE[HY000]:一般错误:1005无法创建表(errno:150“外键约束格式不正确”)(sql:alter 表添加约束MEINS\u category\u id\u外键()参考()关于删除级联)
我正在尝试迁移我的Rails MySQL数据库,但遇到以下错误: ActiveRecord::StatementInvalid:mysql2::错误:无法创建表。(错误号:150“外键约束格式不正确”):创建表(int AUTO_INCREMENT主键,varchar(255),int,int,datetime不为空, 以下是我的迁移: 如果有人能在这里给我一个主意,我将非常感谢。我已经搜索了一段
我正在尝试迁移Rails MySQL数据库,出现以下错误: ActiveRecord::声明无效:MySQL2::Error:不能创建表.(errno: 150"外键约束格式不正确"): CREATE TABLE(intAUTO_INCREMENTPRIMary关键,varchar(255),int,int,datetime非空,datetime非空,INDEX(),INDEX(),CONSTRA