باسلام و احترام
من سه تا دیتابیس با مایگریشن درست کردم و مقادیر زیر رو توی هرکدومشون گذاشتم
اولی :
php artisan make:migration ShipDivision
با محتوای
Schema::create('ship_divisions', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->timestamps();
});
دومی :
php artisan make:migration ShipDistricts
با محتوای
Schema::create('ship_districts', function (Blueprint $table) {
$table->id();
$table->foreignId('ship_division_id')->constrained()->nullOnDelete();
$table->string('name');
$table->timestamps();
});
سومی:
php artisan make:migration ShipState
با محتوای
Schema::create('ship_states', function (Blueprint $table) {
$table->id();
$table->foreignId('ship_division_id')->constrained()->nullOnDelete();
$table->foreignId('ship_district_id')->constrained()->nullOnDelete();
$table->string('name');
$table->timestamps();
});
سیستم موقع مایگریت کردن اولی رو میاد اضافه میکنه و واسه دومی روی کلید خارجی گیر میده .
هم یکجا مایگریت کردم و هم اولی رو مایگریت کردم و بعد رفتم سراغ بعدی بازم خطا دارم
INFO Running migrations.
2025_02_28_174658_create_ship_divisions_table .................................... 22.42ms DONE
2025_02_28_181425_create_ship_districts_table .................................... 53.45ms FAIL
Illuminate\Database\QueryException
SQLSTATE[HY000]: General error: 1005 Can't create table `hami_shoping`.`ship_districts` (errno: 150 "Foreign key constraint is incorrectly formed") (Connection: mysql, SQL: alter table `ship_districts` add constraint `ship_districts_ship_division_id_foreign` foreign key (`ship_division_id`) references `ship_divisions` (`id`) on delete set null)