summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGreg Roach <greg@subaqua.co.uk>2026-02-06 10:40:42 +0000
committerGreg Roach <greg@subaqua.co.uk>2026-02-06 10:40:42 +0000
commit4b795a9ce6f86438bd1dcb40dbef2e527d30c2ae (patch)
tree4f0833143199f8385121ee81e8e8fed15244fcc2
parent2ebcd3d1a3a8c785a176e1493016d3562d29e764 (diff)
downloadwebtrees-4b795a9ce6f86438bd1dcb40dbef2e527d30c2ae.tar.gz
webtrees-4b795a9ce6f86438bd1dcb40dbef2e527d30c2ae.tar.bz2
webtrees-4b795a9ce6f86438bd1dcb40dbef2e527d30c2ae.zip
Use explicit functions for foreign key actions
-rw-r--r--app/Schema/Migration39.php4
-rw-r--r--app/Schema/Migration40.php4
-rw-r--r--app/Schema/Migration42.php4
-rw-r--r--app/Schema/Migration44.php25
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')