From b4797d92fc3ec7a7e7160f31dbcc543b702eae58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Munsch?= Date: Wed, 15 Jun 2022 14:09:52 +0200 Subject: [PATCH] Add Missing Foreign Keys --- app/Http/Controllers/DomainNameController.php | 4 +- .../Requests/Servers/StoreServerRequest.php | 2 +- app/Models/DatastorePcc.php | 7 --- app/Models/EmailAddress.php | 12 +++++ app/Models/ProjectsStatusChecker.php | 7 --- ..._06_15_135538_add_missing_foreign_keys.php | 53 +++++++++++++++++++ 6 files changed, 69 insertions(+), 16 deletions(-) create mode 100644 database/migrations/2022_06_15_135538_add_missing_foreign_keys.php diff --git a/app/Http/Controllers/DomainNameController.php b/app/Http/Controllers/DomainNameController.php index 18d2eec..f25d3e7 100644 --- a/app/Http/Controllers/DomainNameController.php +++ b/app/Http/Controllers/DomainNameController.php @@ -85,7 +85,9 @@ class DomainNameController extends Controller */ public function destroy(DomainName $domain_name) { - $emails = EmailAddress::where('domain_name_id', '=', $domain_name->id)->get(); + $emails = EmailAddress::whereHas('domainName', function ($q) use ($domain_name) { + $q->whereId($domain_name->id); + })->get(); return view('domain-names.delete', [ 'domain_name' => $domain_name, 'isUsed' => $emails->count() ? $emails : false diff --git a/app/Http/Requests/Servers/StoreServerRequest.php b/app/Http/Requests/Servers/StoreServerRequest.php index e8aae1b..109ba42 100644 --- a/app/Http/Requests/Servers/StoreServerRequest.php +++ b/app/Http/Requests/Servers/StoreServerRequest.php @@ -37,7 +37,7 @@ class StoreServerRequest extends FormRequest 'title' => 'required|min:2|max:50', 'name' => 'required|min:2|max:50', 'function' => 'required|min:2|max:50', - 'datastore_pcc_id' => 'required|exists:datastore_pcc,id', + 'datastore_pcc_id' => 'required|exists:datastore_pccs,id', 'comment' => 'nullable|string', 'type' => [ 'required', new EnumIsValidRule(ServerType::class) diff --git a/app/Models/DatastorePcc.php b/app/Models/DatastorePcc.php index b0c005b..4516688 100644 --- a/app/Models/DatastorePcc.php +++ b/app/Models/DatastorePcc.php @@ -6,13 +6,6 @@ use Illuminate\Database\Eloquent\Model; class DatastorePcc extends Model { - /** - * The table associated with the model. - * - * @var string - */ - protected $table = 'datastore_pcc'; - /** * The attributes that are mass assignable. * diff --git a/app/Models/EmailAddress.php b/app/Models/EmailAddress.php index 7425641..00ca583 100644 --- a/app/Models/EmailAddress.php +++ b/app/Models/EmailAddress.php @@ -28,4 +28,16 @@ class EmailAddress extends Model $dn = DomainName::findOrFail($this->domain_name_id); return $dn->utf8_name; } + + // * RELATIONSHIPS + + /** + * BelongsTo domain name relation + * + * @return \Illuminate\Database\Eloquent\Relations\BelongsTo + */ + public function domainName() + { + return $this->belongsTo(DomainName::class); + } } diff --git a/app/Models/ProjectsStatusChecker.php b/app/Models/ProjectsStatusChecker.php index e274af0..f043a84 100644 --- a/app/Models/ProjectsStatusChecker.php +++ b/app/Models/ProjectsStatusChecker.php @@ -6,13 +6,6 @@ use Illuminate\Database\Eloquent\Model; class ProjectsStatusChecker extends Model { - /** - * The table associated with the model. - * - * @var string - */ - protected $table = 'projects_status_checker'; - /** * The attributes that should be cast. * diff --git a/database/migrations/2022_06_15_135538_add_missing_foreign_keys.php b/database/migrations/2022_06_15_135538_add_missing_foreign_keys.php new file mode 100644 index 0000000..1dfd47f --- /dev/null +++ b/database/migrations/2022_06_15_135538_add_missing_foreign_keys.php @@ -0,0 +1,53 @@ +foreign('domain_name_id')->references('id') + ->on('domain_names'); + }); + Schema::rename('projects_status_checker', 'project_status_checkers'); + Schema::rename('datastore_pcc', 'datastore_pccs'); + Schema::table('projects', function (Blueprint $table) { + $table->foreign('prod_db_server_id')->references('id') + ->on('servers'); + $table->foreign('dev_db_server_id')->references('id') + ->on('servers'); + $table->foreign('prod_web_server_id')->references('id') + ->on('servers'); + $table->foreign('dev_web_server_id')->references('id') + ->on('servers'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('email_addresses', function (Blueprint $table) { + $table->dropForeign(['domain_name_id']); + }); + Schema::table('projects', function (Blueprint $table) { + $table->dropForeign(['prod_db_server_id']); + $table->dropForeign(['dev_db_server_id']); + $table->dropForeign(['prod_web_server_id']); + $table->dropForeign(['dev_web_server_id']); + }); + Schema::rename('project_status_checkers', 'projects_status_checker'); + Schema::rename('datastore_pccs', 'datastore_pcc'); + } +}