Compare commits

...

2 Commits

Author SHA1 Message Date
de34052c3b Add constraint for hubs, which must have the same host and region for a zone
All checks were successful
Create Docker Image / Build Docker Image (x86_64) (push) Successful in 40s
Create Docker Image / Build Docker Image (arm64) (push) Successful in 1m48s
Create Docker Image / Final Docker Image Manifest (push) Successful in 11s
2024-05-23 21:46:26 +10:00
cb63ec50d2 Dont cache when doing debug:zone:check 2024-05-23 21:31:17 +10:00
2 changed files with 33 additions and 1 deletions

View File

@ -25,7 +25,7 @@ class ZoneCheck extends Command
$this->warn('Zone: '.$zo->zone_id);
$this->info(sprintf('- Our address(es): %s',our_address($do)->pluck('ftn4d')->join(',')));
$this->table(['id','ftn','role','parent','children','downlinks','uplink','send from','region_id','system','notes'],$zo->addresses()->FTNorder()->active()->with(['system'])->get()->transform(function($item) {
$this->table(['id','ftn','role','parent','children','downlinks','uplink','send from','region_id','system','notes'],$zo->addresses()->FTNorder()->active()->with(['system'])->dontCache()->get()->transform(function($item) {
return [
'id'=>$item->id,
'ftn'=>$item->ftn4d,

View File

@ -0,0 +1,32 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('addresses', function (Blueprint $table) {
$table->dropForeign(['hub_id']);
$table->unique(['zone_id','region_id','host_id','id']);
$table->foreign(['zone_id','region_id','host_id','hub_id'])->references(['zone_id','region_id','host_id','id'])->on('addresses');
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('addresses', function (Blueprint $table) {
$table->dropForeign(['zone_id','region_id','host_id','hub_id']);
$table->dropUnique(['zone_id','region_id','host_id','id']);
$table->foreign('hub_id')->references('id')->on('addresses');
});
}
};