moving back to auto-incrementing IDs because of performance

This commit is contained in:
Brian 2022-09-27 11:54:02 -06:00
parent 400edc9b38
commit b7ac751b10
Signed by: brian
GPG Key ID: DE1A5390A3B84CD8
7 changed files with 9 additions and 41 deletions

View File

@ -3,7 +3,6 @@
namespace App\Models; namespace App\Models;
use App\Models\Traits\FormattedAddressTrait; use App\Models\Traits\FormattedAddressTrait;
use App\Models\Traits\HasUidTrait;
use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
@ -14,18 +13,11 @@ class Address extends Model
{ {
use FormattedAddressTrait; use FormattedAddressTrait;
use HasFactory; use HasFactory;
use HasUidTrait;
use Prunable; use Prunable;
/** @var string */ /** @var string */
protected $table = 'addresses'; protected $table = 'addresses';
/** @var string */
protected $keyType = 'string';
/** @var bool */
public $incrementing = false;
/** @var array */ /** @var array */
protected $fillable = [ protected $fillable = [
'addressable_type', 'addressable_type',

View File

@ -1,17 +0,0 @@
<?php
namespace App\Models;
use App\Models\Traits\HasUidTrait;
use Laravel\Sanctum\PersonalAccessToken as SanctumPersonalAccessToken;
class PersonalAccessToken extends SanctumPersonalAccessToken
{
use HasUidTrait;
/** @var string */
protected $keyType = 'string';
/** @var bool */
public $incrementing = false;
}

View File

@ -2,7 +2,6 @@
namespace App\Models; namespace App\Models;
use App\Models\Traits\HasUidTrait;
use Illuminate\Database\Eloquent\Casts\Attribute; use Illuminate\Database\Eloquent\Casts\Attribute;
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Prunable; use Illuminate\Database\Eloquent\Prunable;
@ -20,7 +19,6 @@ class User extends Authenticatable
use HasFactory; use HasFactory;
use HasProfilePhoto; use HasProfilePhoto;
use HasTeams; use HasTeams;
use HasUidTrait;
use Notifiable; use Notifiable;
use Prunable; use Prunable;
use TwoFactorAuthenticatable; use TwoFactorAuthenticatable;

View File

@ -14,7 +14,7 @@ return new class extends Migration
public function up() public function up()
{ {
Schema::create('users', function (Blueprint $table) { Schema::create('users', function (Blueprint $table) {
$table->string('id', 64)->primary(); $table->id();
$table->string('name'); $table->string('name');
$table->string('surname'); $table->string('surname');
$table->string('email')->unique(); $table->string('email')->unique();

View File

@ -15,7 +15,7 @@ return new class extends Migration
{ {
Schema::create('sessions', function (Blueprint $table) { Schema::create('sessions', function (Blueprint $table) {
$table->string('id')->primary(); $table->string('id')->primary();
$table->string('user_id', 64)->nullable()->index(); $table->foreignId('user_id')->nullable()->index();
$table->string('ip_address', 45)->nullable(); $table->string('ip_address', 45)->nullable();
$table->text('user_agent')->nullable()->index(); $table->text('user_agent')->nullable()->index();
$table->text('payload'); $table->text('payload');

View File

@ -14,8 +14,8 @@ return new class extends Migration
public function up() public function up()
{ {
Schema::create('addresses', function (Blueprint $table) { Schema::create('addresses', function (Blueprint $table) {
$table->string('id', 64)->primary(); $table->id();
$table->uuidMorphs('addressable'); $table->morphs('addressable');
$table->string('street'); $table->string('street');
$table->string('unit')->nullable(); $table->string('unit')->nullable();
$table->string('city'); $table->string('city');

View File

@ -14,16 +14,11 @@ return new class extends Migration
public function up() public function up()
{ {
Schema::create('address_user', function (Blueprint $table) { Schema::create('address_user', function (Blueprint $table) {
$table->string('address_id', 64); $table->id();
$table->string('user_id', 64); $table->foreignId('address_id')->constrained()->cascadeOnUpdate()->cascadeOnDelete();
$table->foreignId('user_id')->constrained()->cascadeOnUpdate()->cascadeOnDelete();
$table->foreign('address_id') $table->timestamp('created_at')->useCurrent();
->references('id')->on('addresss') $table->timestamp('updated_at')->nullable()->useCurrentOnUpdate();
->cascadeOnUpdate()->cascadeOnDelete();
$table->foreign('user_id')
->references('id')->on('users')
->cascadeOnUpdate()->cascadeOnDelete();
}); });
} }