dropForeign(['territorio_id']); }); Schema::table('territorio_mappe', function (Blueprint $table) { $table->foreignId('territorio_id')->nullable()->change(); $table->string('nome')->nullable()->after('territorio_id'); }); Schema::table('territorio_mappe', function (Blueprint $table) { $table->foreign('territorio_id')->references('id')->on('territori')->nullOnDelete(); }); } public function down(): void { // Le piantine scollegate non hanno un territorio a cui tornare: senza // questa pulizia il vincolo NOT NULL non si potrebbe piu' applicare. Schema::table('territorio_mappe', function (Blueprint $table) { $table->dropForeign(['territorio_id']); }); \Illuminate\Support\Facades\DB::table('territorio_mappe')->whereNull('territorio_id')->delete(); Schema::table('territorio_mappe', function (Blueprint $table) { $table->dropColumn('nome'); $table->foreignId('territorio_id')->nullable(false)->change(); }); Schema::table('territorio_mappe', function (Blueprint $table) { $table->foreign('territorio_id')->references('id')->on('territori')->cascadeOnDelete(); }); } };