Update the database schema
This commit is contained in:
parent
2ddccd9c41
commit
6084247248
3 changed files with 92 additions and 0 deletions
|
@ -0,0 +1,42 @@
|
|||
<?php
|
||||
/*
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
SPDX-FileCopyrightText: © 2024 Millions Missing FRANCE <info@millionsmissing.fr>
|
||||
*/
|
||||
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
class CreateCustomersGroupsTable extends Migration {
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up() {
|
||||
Schema::create('customers_groups', function (Blueprint $table) {
|
||||
$table->increments('id');
|
||||
$table->string('name');
|
||||
// Include a "mailbox_id" column in the customers groups table, linking each group entry to a specific mailbox.
|
||||
$table
|
||||
->integer('mailbox_id')
|
||||
->unsigned();
|
||||
$table
|
||||
->foreign('mailbox_id')
|
||||
->references('id')
|
||||
->on('mailboxes')
|
||||
// On mailbox deletion, delete all customers group entries that are linked to it.
|
||||
->onDelete('cascade');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down() {
|
||||
Schema::dropIfExists('customers_groups');
|
||||
}
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
<?php
|
||||
/*
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
SPDX-FileCopyrightText: © 2024 Millions Missing FRANCE <info@millionsmissing.fr>
|
||||
*/
|
||||
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
class LinkCustomersToGroups extends Migration {
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up() {
|
||||
Schema::create('customers_group_customers', function (Blueprint $table) {
|
||||
// Set a link between customers groups and customers.
|
||||
$table
|
||||
->integer('customers_group_id')
|
||||
->unsigned();
|
||||
$table
|
||||
->foreign('customers_group_id')
|
||||
->references('id')
|
||||
->on('customers_groups')
|
||||
->onDelete('cascade');
|
||||
$table
|
||||
->integer('customer_id')
|
||||
->unsigned();
|
||||
$table
|
||||
->foreign('customer_id')
|
||||
->references('id')
|
||||
->on('customers')
|
||||
->onDelete('cascade');
|
||||
// Prevent the inclusion of duplicated entries.
|
||||
$table->unique(['customers_group_id', 'customer_id']);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down() {
|
||||
Schema::dropIfExists('customers_group_customers');
|
||||
}
|
||||
}
|
|
@ -21,6 +21,7 @@ class MMFCustomersGroupsServiceProvider extends ServiceProvider {
|
|||
*/
|
||||
public function boot() {
|
||||
$this->registerConfig();
|
||||
$this->loadMigrationsFrom(__DIR__ . '/../Database/Migrations');
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in a new issue