diff options
| author | Greg Roach <greg@subaqua.co.uk> | 2026-02-06 10:40:42 +0000 |
|---|---|---|
| committer | Greg Roach <greg@subaqua.co.uk> | 2026-02-06 10:40:42 +0000 |
| commit | 4b795a9ce6f86438bd1dcb40dbef2e527d30c2ae (patch) | |
| tree | 4f0833143199f8385121ee81e8e8fed15244fcc2 | |
| parent | 2ebcd3d1a3a8c785a176e1493016d3562d29e764 (diff) | |
| download | webtrees-4b795a9ce6f86438bd1dcb40dbef2e527d30c2ae.tar.gz webtrees-4b795a9ce6f86438bd1dcb40dbef2e527d30c2ae.tar.bz2 webtrees-4b795a9ce6f86438bd1dcb40dbef2e527d30c2ae.zip | |
Use explicit functions for foreign key actions
| -rw-r--r-- | app/Schema/Migration39.php | 4 | ||||
| -rw-r--r-- | app/Schema/Migration40.php | 4 | ||||
| -rw-r--r-- | app/Schema/Migration42.php | 4 | ||||
| -rw-r--r-- | app/Schema/Migration44.php | 25 |
4 files changed, 16 insertions, 21 deletions
diff --git a/app/Schema/Migration39.php b/app/Schema/Migration39.php index b572e4c0dd..a0230847ae 100644 --- a/app/Schema/Migration39.php +++ b/app/Schema/Migration39.php @@ -46,8 +46,8 @@ class Migration39 implements MigrationInterface $table->index('user_id'); $table->index(['gedcom_id', 'user_id']); - $table->foreign('user_id')->references('user_id')->on('user')->onDelete('cascade'); - $table->foreign('gedcom_id')->references('gedcom_id')->on('gedcom')->onDelete('cascade'); + $table->foreign('user_id')->references('user_id')->on('user')->cascadeOnDelete(); + $table->foreign('gedcom_id')->references('gedcom_id')->on('gedcom')->cascadeOnDelete(); }); } } diff --git a/app/Schema/Migration40.php b/app/Schema/Migration40.php index fc421e159f..143ec5f57f 100644 --- a/app/Schema/Migration40.php +++ b/app/Schema/Migration40.php @@ -44,8 +44,8 @@ class Migration40 implements MigrationInterface $table->index(['user_id', 'updated']); $table->index(['gedcom_id', 'updated']); - $table->foreign('user_id')->references('user_id')->on('user')->onDelete('cascade'); - $table->foreign('gedcom_id')->references('gedcom_id')->on('gedcom')->onDelete('cascade'); + $table->foreign('user_id')->references('user_id')->on('user')->cascadeOnDelete(); + $table->foreign('gedcom_id')->references('gedcom_id')->on('gedcom')->cascadeOnDelete(); }); } } diff --git a/app/Schema/Migration42.php b/app/Schema/Migration42.php index fc9099ad12..5340f9669c 100644 --- a/app/Schema/Migration42.php +++ b/app/Schema/Migration42.php @@ -67,8 +67,8 @@ class Migration42 implements MigrationInterface $table->unique(['gedcom_id', 'module_name', 'interface'], $key1); $table->unique(['module_name', 'gedcom_id', 'interface'], $key2); - $table->foreign('module_name')->references('module_name')->on('module')->onDelete('cascade'); - $table->foreign('gedcom_id')->references('gedcom_id')->on('gedcom')->onDelete('cascade'); + $table->foreign('module_name')->references('module_name')->on('module')->cascadeOnDelete(); + $table->foreign('gedcom_id')->references('gedcom_id')->on('gedcom')->cascadeOnDelete(); }); foreach ($data as $datum) { diff --git a/app/Schema/Migration44.php b/app/Schema/Migration44.php index e9d1755ece..c0e306a4d2 100644 --- a/app/Schema/Migration44.php +++ b/app/Schema/Migration44.php @@ -48,26 +48,21 @@ class Migration44 implements MigrationInterface $table->index(['longitude']); }); - // SQL-server cannot cascade-delete/update on self-relations. + // SqlServer cannot cascade-delete/update on self-relations. // Users will need to delete all child locations before deleting the parent. - if (DB::driverName() === DB::SQL_SERVER) { - // SQL-Server doesn't support 'RESTRICT' - $action = 'NO ACTION'; - } else { - $action = 'CASCADE'; + if (DB::driverName() !== DB::SQL_SERVER) { + DB::schema()->table('place_location', static function (Blueprint $table): void { + $table->foreign(['parent_id']) + ->references(['id']) + ->on('place_location') + ->cascadeOnDelete() + ->cascadeOnUpdate(); + }); } - - DB::schema()->table('place_location', static function (Blueprint $table) use ($action): void { - $table->foreign(['parent_id']) - ->references(['id']) - ->on('place_location') - ->onDelete($action) - ->onUpdate($action); - }); } // This table should only exist if we are upgrading an old installation, which would have been - // created with MySQL. Therefore we can safely use MySQL-specific SQL. + // created with MySQL. Therefore, we can safely use MySQL-specific SQL. if (DB::schema()->hasTable('placelocation')) { if (DB::driverName() === DB::MYSQL) { DB::table('placelocation') |
