Я переношу этот код
public function up()
{
Schema::create('TechnicianGroup', function(Blueprint $table){
$table->increments('id')->unsigned();
$table->string('name', 255);
$table->string('description', 64);
$table->string('token', 255);
$table->timestamps();
});
Schema::create('Site', function(Blueprint $table){
$table->increments('id');
$table->string('name', 255);
$table->string('token', 255);
$table->timestamps();
});
Schema::create('technician', function (Blueprint $table) {
$table->increments('id');
$table->string('name', 50);
$table->string('username', 50);
$table->string('password', 255);
$table->string('email', 255);
$table->string('mobile', 11);
$table->string('avatar_url', 256);
$table->string('job_title', 100);
$table->integer('site_id');
$table->foreign('site_id')->references('id')->on('site')->onDelete('cascade');
$table->integer('group_id');
$table->boolean('is_active');
$table->string('token', 255);
$table->timestamps();
});
}
Когда я вычищаю малярию
php artisan migrate
В результате
[Illuminate\Database\QueryException] SQLSTATE [HY000]: Общая ошибка: 1005 Невозможно создать таблицу вверх. # Sql-a3c_140 '(errno: 150) (SQL: alter table
technician
добавить ограничение technician_site_id_foreign external key (site_id
) referen cessite
(id
)) [PDOException] SQLSTATE [HY000]: Общая ошибка: 1005 Не удается создать таблицу "вверх". sql-a3c_140 (errno: 150)
Вы забыли использовать unsigned()
. Если вы не используете unsinged()
, столбец будет int(11)
, но вам нужно int(10)
.
site.id
и technician.site_id
должны быть одного типа: int (10)
Попробуй это:
$table->foreign('site_id')->unsigned()->references('id')->on('site')->onDelete('cascade');